安卓动画(旋转,平移,透明,缩放,帧动画)

public class MainActivity extends AppCompatActivity {

    private ListView listView;
    private ImageView img_main;
    private String[] arr = {
            "完成帧动画", "平移", "渐变", "放大", "旋转并平移"
    };
    private List<String> list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = (ListView) findViewById(R.id.listview_main);
        img_main = (ImageView) findViewById(R.id.img_main);
        list = new ArrayList<>();
        for (String s : arr
                ) {
            list.add(s);
        }
        listView.setAdapter(new Mybase());
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
             if (list.get(position).equals("完成帧动画")){
                 img_main.setImageResource(R.drawable.donghua);
                 AnimationDrawable drawable = (AnimationDrawable)img_main.getDrawable();
                 drawable.start();

             }else if(list.get(position).equals("平移")){
                 TranslateAnimation trans=new TranslateAnimation(0,0,0,100);
                 trans.setDuration(2000);
                 img_main.startAnimation(trans);
             }else if(list.get(position).equals("渐变")){
                 AlphaAnimation alp=new AlphaAnimation(0.5f,1);
                 alp.setDuration(2000);
                 img_main.startAnimation(alp);
             }else if(list.get(position).equals("放大")){
                 ScaleAnimation sc=new ScaleAnimation(1,3,1,3, Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
                 sc.setDuration(2000);
                 img_main.startAnimation(sc);

             }else if(list.get(position).equals("旋转并平移")){
                 AnimationSet aaa=new AnimationSet(true);
                 RotateAnimation ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
                 ra.setDuration(2000);
                 TranslateAnimation trans=new TranslateAnimation(0,800,0,0);
                 trans.setDuration(2000);
                 trans.setRepeatMode(Animation.REVERSE);
                 aaa.addAnimation(ra);
                 aaa.addAnimation(trans);

                 img_main.startAnimation(aaa);
             }
            }
        });

    }

    private class Mybase extends BaseAdapter {
        @Override
        public int getCount() {
            return list.size();
        }

        @Override
        public Object getItem(int position) {
            return list.get(position);
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder holder = null;
            if (convertView == null) {
                convertView = View.inflate(MainActivity.this, R.layout.item, null);
                holder = new ViewHolder();
                holder.t1 = (TextView) convertView.findViewById(R.id.item_text);
                convertView.setTag(holder);

            } else {
                holder = (ViewHolder) convertView.getTag();
            }
            holder.t1.setText(list.get(position));
            return convertView;
        }

        private class ViewHolder {
            TextView t1;
        }
    }
}


//通用属性
//设置效果时间
setDuration();
//是否保持结束时的动画状态
setFillAfter();
//动画执行前的等待时间
setStartOffset();
//设置要执行的次数
setRepeatCount();



//帧动画布局要放在 res / drawable文件夹下

<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/qq" android:duration="1000"></item>
    <item android:drawable="@drawable/wx" android:duration="1000"></item>
    <item android:drawable="@drawable/rr" android:duration="1000"></item>
    <item android:drawable="@drawable/xlwb" android:duration="1000"></item>
</animation-list>
//引用的方法  
     // img_main为图片控件
 img_main.setImageResource(R.drawable.donghua);
                 AnimationDrawable drawable = (AnimationDrawable)img_main.getDrawable();
                 drawable.start();



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值