Android多媒体应用——ImageSwitcher
16lz
2021-01-23
一、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)); }}
更多相关文章
- Android下基于XML的Graphics shape使用方法
- android中设置全屏的方法
- 去除安卓checkbox按下时的阴影效果
- 关于Linearlayout中控件设置为其底部的问题,android:layout_grav
- Android有效解决加载大图片时内存溢出的问题
- Android LineaerLayout中layout_margin失效不起作用的解决方法
- Android SDK 快速安装方法
- Android 图片加载图片_OOM异常解决