android设置生成随机动画,Android中的图形、图像,动画生成

一、图片的访问

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);

   Animation translate =newTranslateAnimation(10,100,10,100);   
   translate.setDuration(3000);
   image.startAnimation(translate);

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学习笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值