zoukankan      html  css  js  c++  java
  • Android面试收集录 2D绘图与动画技术

    1.如何在Android应用程序的窗口上绘制图形?

    • 继承View
    • 实现View中的onDraw()方法

    2.如何绘制圆,空心椭圆?

    • canvas.drawArc或canvas.drawCircle方法 绘制圆
    • canvas.drawArc(矩形对象,0,360,true,paint);

    3.绘制位图的两种方法?

    • 法1:canvas.drawBitmap(bitmap,10,10,null);  //在画布上画图 
    • 法2:drawable.draw(canvas);  //把图粘贴到画布上

    4.如何设置图像的透明度?

    • paint.setAlpha(99);

    5.如何旋转图形?

    • Matrix matrix=new Matrix();
    • matrix.setRotate(120,坐标1,坐标2); //按照坐标旋转120度
    • canvas.setMatrix(matrix);

    6.如何用View实现动画效果?

    • 通过调用View.invalidate方法使手机屏幕不断刷新

    7.请描述一下Android SDK的绘画API支持哪几种路径?

    • CornerPathEffect类:将线段与线段之间的夹角转换成圆角。
    • DashPathEffect类:该类用于绘制虚线路径。
    • PathDashPathEffect类:该类可以单独组成虚线路径。
    • ComposePathEffect类:该类可以将两种特效组合在一起。

    8.如何实现文字呈现一个圆形显示?

    • 使用canvas.drawTextOnPath("文字",path,-55,0,paint);

    9.如何控制帧动画的循环?

    • 静态配置:在帧动画文件中设置android:oneshot属性
    • 动态配置:使用AnimationDrawable.setOneshot方法

    10.Android SDK 支持哪几种补间动画?

    • 移动补间动画
    • 旋转补间动画
    • 缩放补间动画
    • 透明度补间动画

    11.如何自定义动画渲染器?

    • 自定义类实现Interpolator接口
    • 使用Animation来配合调用该渲染器
    • 注意:自定义渲染器是无法通过XML文件中android:interpolator属性来指定的。
  • 相关阅读:
    计划任务和压缩归档
    libevent 源码学习三 —— 基本使用场景和事件流程
    libevent 源码学习二 —— reactor 模式
    libevent 库源码学习
    手动配置固定IP参数vim vim
    软件相关
    写xhttpd服务器时 遇到segmentation fault
    c与c++中输出字符指针和字符串指针的问题
    char * argv[] ,string简析
    传入参数与传出参数
  • 原文地址:https://www.cnblogs.com/Jason-Jan/p/8550785.html
Copyright © 2011-2022 走看看