一、ImageSwitcher

FrameLayout
---->(间接继承)ImageSwitcher
有三个方法:1、setImageDrawable(Drawable);2、setImageResource(int);3、setImageURL(URL);

在XML中设定:
@android:anim/AnimName
常用效果
android:inAnimation:切入图片时的效果。
android:outAnimation:切出图片时的效果。

设置视图工厂:
ImageSwitcher直接继承自ViewSwitcher类。
ImageSwitcher通过setFactory()方法为它设置一个ViewSwitcher.ViewFactory接口。
设置这个ViewFactory接口时需要实现makeView()方法,该方法通常会返回一个ImageView。
makeView()为ImageSwitcher生成ImageView,为ViewSwitcher生成View。

 

public class Test1 extends AppCompatActivity {    private Button btnAdd, btnSub;    private ImageSwitcher imageSwitcher;    private int index = 0;    private List list;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_test1);        putData();        imageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher1);        btnAdd = (Button) findViewById(R.id.btnadd);        btnSub = (Button) findViewById(R.id.btnSub);        btnAdd.setOnClickListener(myClick);        btnSub.setOnClickListener(myClick);        //通过代码设定从左缓进,从右换出的效果。        imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(Test1.this, android.R.anim.slide_in_left));        imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(Test1.this, android.R.anim.slide_out_right));        imageSwitcher.setFactory(new ViewFactory() {            @Override            public View makeView() {                return new ImageView(Test1.this);            }        });        imageSwitcher.setImageDrawable(list.get(0));    }    private View.OnClickListener myClick = new OnClickListener() {        @Override        public void onClick(View v) {            switch (v.getId()) {                case R.id.btnadd:                    index--;                    if (index < 0) {                        index = list.size() - 1;                    }                    imageSwitcher.setImageDrawable(list.get(index));                    break;                case R.id.btnSub:                    index++;                    if (index >= list.size()) {                        index = 0;                    }                    imageSwitcher.setImageDrawable(list.get(index));                    break;            }        }    };    private void putData() {        //填充图片的Drawable资源数组        list = new ArrayList<>();        list.add(getResources().getDrawable(R.drawable.bmp1));        list.add(getResources().getDrawable(R.drawable.bmp2));        list.add(getResources().getDrawable(R.drawable.bmp3));        list.add(getResources().getDrawable(R.drawable.bmp4));        list.add(getResources().getDrawable(R.drawable.bmp5));    }}

 

更多相关文章

  1. Android下基于XML的Graphics shape使用方法
  2. android中设置全屏的方法
  3. 去除安卓checkbox按下时的阴影效果
  4. 关于Linearlayout中控件设置为其底部的问题,android:layout_grav
  5. Android有效解决加载大图片时内存溢出的问题
  6. Android LineaerLayout中layout_margin失效不起作用的解决方法
  7. Android SDK 快速安装方法
  8. Android 图片加载图片_OOM异常解决

随机推荐

  1. Prometheus 监控MySQL使用grafana展示
  2. MySQL命令无法输入中文问题的解决方式
  3. 当面试官问mysql中char与varchar的区别
  4. mysql 索引合并的使用
  5. 一文带你了解Mysql主从同步原理
  6. 基于Redo Log和Undo Log的MySQL崩溃恢复
  7. MySQL 到底是如何做到多版本并发的
  8. MySQL 外键(FOREIGN KEY)用法案例详解
  9. mysql过滤复制思路详解
  10. MySQL如何利用存储过程快速生成100万条数