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();
安卓动画(旋转,平移,透明,缩放,帧动画)
最新推荐文章于 2024-04-10 00:40:44 发布