一、图片的访问
1)可以通过在xml文件src指定,也可以在代码中,使用ImageView对象调用setImageResource(int id)来指定。
2)使用Bitmap和BitmapFactory来得到sdcard保存的图片。(向sdcard保存内容,使用adb push/pull 来实现文件的导入/出,也可借用ddms)。
二、动画
可以分为两种实现方式:Tween动画和Frame动画。
Tween动画:也可说是渐变动画,它包含四种实现效果(Alpha透明、Scale大小、Rotate旋转、Translate移动)。animation是一个抽象类,其余四个都是继承于它。
代码实现:定义所要实现的动画效果,设置动画持续时间,调用ImageView对象的startAnimation()方法开始动画。
例:ImageView image = (ImageView)findviewbyid(r.anim.girl);
xml中定义: 需要res/anim下定义配置文件,然后在代码中使用animationutils.loadanimation()方法来载入指定的动画效果。
例:<?xmlversion ="1.0"encoding="utf-8"?>
android:interpolator="@[package:]anim/interpolator_resource"
android:shareInterpolator=["true" | "false"]>
android:fromAlpha="float"
android:toAlpha="float"/>
android:fromXScale="float"
android:toXScale="float"
android:fromYScale="float"
android:toYScale="float"
android:pivotX="float"
android:pivotY="float"/>
android:fromX="float"
android:toX="float"
android:fromY="float"
android:toY="float"/>
android:fromDegrees="float"
android:toDegrees="float"
android:pivotX="float"
android:pivotY="float"/>
...
Animation alpha = AnimationUtils.loadAnimation(MainActivity.this, R.anim.alpha);
alpha.setDuration(3000);
image.startAnimation(alpha);
属性[类型]
功能
备注
Duration[long]
属性为动画持续时间
时间以毫秒为单位
fillAfter [boolean]
当设置为true ,该动画转化在动画结束后被应用
fillBefore[boolean]
当设置为true ,该动画转化在动画开始前被应用
interpolator
指定一个动画的插入器
有一些常见的插入器accelerate_decelerate_interpolator加速-减速 动画插入器accelerate_interpolator加速-动画插入器decelerate_interpolator减速- 动画插入器其他的属于特定的动画效果
repeatCount[int]
动画的重复次数
RepeatMode[int]
定义重复的行为
1:重新开始 2:plays backward
startOffset[long]
动画之间的时间间隔,从上次动画停多少时间开始执行下个动画
zAdjustment[int]
定义动画的Z Order的改变
0:保持Z Order不变1:保持在最上层-1:保持在最下层
表二
XML节点
功能说明
alpha
渐变透明度动画效果
fromAlpha
属性为动画起始时透明度
0.0表示完全透明1.0表示完全不透明以上值取0.0-1.0之间的float数据类型的数字
duration为动画持续时间,ms单位
toAlpha
属性为动画结束时透明度
表三
scale
渐变尺寸伸缩动画效果
fromXScale[float] fromYScale[float]
为动画起始时,X、Y坐标上的伸缩尺寸
0.0表示收缩到没有1.0表示正常无伸缩值小于1.0表示收缩值大于1.0表示放大
toXScale [float]toYScale[float]
为动画结束时,X、Y坐标上的伸缩尺寸
pivotX[float]pivotY[float]
为动画相对于物件的X、Y坐标的开始位置
属性值说明:从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置
表四
translate
画面转换位置移动动画效果
fromXDeltatoXDelta
为动画、结束起始时 X坐标上的位置
fromYDeltatoYDelta
为动画、结束起始时 Y坐标上的位置
表五
rotate
画面转移旋转动画效果
fromDegrees
为动画起始时物件的角度
说明当角度为负数——表示逆时针旋转当角度为正数——表示顺时针旋转(负数from——to正数:顺时针旋转)(负数from——to负数:逆时针旋转)(正数from——to正数:顺时针旋转)(正数from——to负数:逆时针旋转)
toDegrees
属性为动画结束时物件旋转的角度 可以大于360度
pivotXpivotY
为动画相对于物件的X、Y坐标的开始位
说明:以上两个属性值 从0%-100%中取值50%为物件的X或Y方向坐标上的中点位置
Frame动画:也成为是逐帧动画,它只需在res/anim下定义一个配置文件,需要有一个根元素和若干个子元素组成,在代码中将其定义为imageview对象的背景,然后借助animationdrawable对象来实现动画。
例:<?xmlversion ="1.0"encoding="utf-8"?>
android:oneshot="false">
ImageViewrocketImage= (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource(R.drawable.rocket_thrust);
rocketAnimation= (AnimationDrawable) rocketImage.getBackground();
rocketAnimation.start();
三、图形的绘制
需要一个类,实现view类,并重写onDraw()方法,在方法中,用canvas画布、paint画笔、color颜色、path类来���现图形的绘制。使用canvas类可以绘制各种图形,点线面。paint类用于指定画笔的属性的,颜色、粗细、文字、特效等,path类则用于点与点间的连线。
四、图形特效
Matrix实现旋转、缩放和平移;Shader类渲染图形,它是个抽象父类,子类有BitmapShader位图渲染、ComposeShader混合渲染、LinearGradient线性渲染等。详细使用方法,此处略!后续。。
本文参考:Android应用开发详解 google android 官方sdk feisky学习笔记