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

来源:互联网 发布:网络品牌策划 编辑:程序博客网 时间:2024/04/30 06:05
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 0
原创粉丝点击