准备一张名为picture的图片。
在main.xml中:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#000000"
android:orientation="vertical"
android:gravity="center_horizontal">
<ImageView
android:id="@+id/mlyw"
android:layout_marginTop="8dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="/blog_article/@drawable/picture/index.html"/>
<Button
android:id="@+id/but"
android:layout_width="100dp"
android:layout_height="40dp"
android:layout_marginTop="20dp"
android:background="#3399ff"
android:textColor="#ffffff"
android:text="开始移动缩放"/>
</LinearLayout>
在MyAnimationDemo.java中:
package com.li.animation;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;
import android.widget.Button;
import android.widget.ImageView;
import android.support.v4.app.NavUtils;
@SuppressLint("ParserError")
public class MyAnimationDemo extends Activity {
private ImageView mlyw = null;
private Button but = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
this.mlyw = (ImageView)super.findViewById(R.id.mlyw);
this.but = (Button)super.findViewById(R.id.but);
this.but.setOnClickListener(new OnClickListenerImpl());
}
private class OnClickListenerImpl implements OnClickListener{
public void onClick(View v) {
AnimationSet set = new AnimationSet(true);
TranslateAnimation tran = new TranslateAnimation(
Animation.RELATIVE_TO_SELF,0.0f , // X轴开始位置
Animation.RELATIVE_TO_SELF,0.5f , // X轴移动的结束位置
Animation.RELATIVE_TO_SELF,0.0f , // Y轴开始位置
Animation.RELATIVE_TO_SELF,1.5f ); // Y轴移动位置
ScaleAnimation scale = new ScaleAnimation(1, 0.0f, 1, 0.0f,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
scale.setRepeatCount(2) ; //重复两次
set.addAnimation(tran); // 增加动画
set.addAnimation(scale); // 增加动画
set.setDuration(5000); // 5秒完成动画
MyAnimationDemo.this.mlyw.startAnimation(set); // 启动动画
}
}
}
在main.xml中:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.li.paintproject.MyView
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
在MyPaintDemo.java中:
package com.li.paintproject;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
public class MyPaintDemo extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
在MyView.java中:
package com.li.paintproject;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.View;
public class MyView extends View {
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.BLACK) ; // 画布为黑色
Paint paint = new Paint() ;
paint.setColor(Color.YELLOW) ; // 设置图形的颜色
Rect rect = new Rect(); //定义矩形
rect.set(120,50,360,200); //矩形左上角坐标(160,50),右下角坐标(360,200)
paint.setStyle(Style.STROKE); //空心的
canvas.drawRect(rect, paint);
}
}
准备一张名为picture的图片。
在main.xml中:
<LinearLayout
android:id="@+id/group"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#000000"
android:orientation="vertical"
android:gravity="center_horizontal">
<ImageView
android:id="@+id/mlyw"
android:layout_marginTop="8dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="/blog_article/@drawable/picture/index.html"/>
</LinearLayout>
在MyAnimationDemo.java中:
package com.li.animation;
import android.app.Activity;
import android.os.Bundle;
import android.view.ViewGroup;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.AnimationSet;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;
public class MyAnimationDemo extends Activity {
private ImageView mlyw = null;
private ViewGroup group = null ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
this.mlyw = (ImageView) super.findViewById(R.id.mlyw);
this.group = (ViewGroup) super.findViewById(R.id.group);
AnimationSet set = new AnimationSet(true);
TranslateAnimation tran = new TranslateAnimation(
Animation.RELATIVE_TO_SELF,0.0f , // X轴开始位置
Animation.RELATIVE_TO_SELF,0.5f , // X轴移动的结束位置
Animation.RELATIVE_TO_SELF,0.0f , // Y轴开始位置
Animation.RELATIVE_TO_SELF,1.5f ); // Y轴移动位置
tran.setDuration(6000); // 3秒完成动画
set.addAnimation(tran); // 增加动画
set.setAnimationListener(new AnimationListenerImpl()) ;
this.mlyw.startAnimation(set); // 启动动画
}
private class AnimationListenerImpl implements AnimationListener {
public void onAnimationEnd(Animation animation) {
MyAnimationDemo.this.group.removeView(MyAnimationDemo.this.mlyw) ;
}
public void onAnimationRepeat(Animation animation) {
}
public void onAnimationStart(Animation animation) {
if(animation instanceof AnimationSet) {
AnimationSet set = (AnimationSet) animation ;
AlphaAnimation alpha = new AlphaAnimation(1, 0);
alpha.setDuration(3000) ;
set.addAnimation(alpha) ;
}
}
}
}