2018-06-05-ImageSwitcher 和TextView

ImageSwitcher 和TextView

ImageSwitcher

  • ImageSwitcher是Android中控制图片展示的一个控件,如幻灯片效果
  • ImageSwitcher粗略的理解就是ImageView选择器
  • ImageSwitcher的原理:ImageSwitcher有两个子View:ImageView,当左右滑动时,就在这两个图片之间来回切换图片。
  • 既然有两个子IamgeView,那么我们要创建两个ImageView给ImageSwitcher。出啊关键ImageSwitcher是通过工厂类来实现的:ViewFactory。

public class MainActivity extends AppCompatActivity implements ViewSwitcher.ViewFactory,View.OnTouchListener{

    private ImageSwitcher imageSwitcher;
    private int[] images = {R.mipmap.l,
            R.mipmap.h
    };
    private int index = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        imageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher);
        
        //需要传入特们的对象,就是自己本身
        imageSwitcher.setFactory(this);
        imageSwitcher.setOnTouchListener(this);
        
    }


    //初始化列表
    @Override
    public View makeView() {
        ImageView iv = new ImageView(this);
        iv.setImageResource(images[0]);
        return iv;
    }

    float startX = 0.0f;
    float endX = 0.0f;

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        int action = event.getAction();
        if(action == MotionEvent.ACTION_DOWN){
            startX = event.getX();
        }
        if(action == MotionEvent.ACTION_UP){
            endX = event.getX();
        }


        //往右移
        if(startX - endX>15){   //显示下一张
            index = index+ 1 < images.length?++index:0;
        }else if(endX - startX > 15){  //显示上一张
            index = index - 1 >=0 ? --index:images.length-1;
        }
        imageSwitcher.setImageResource(images[index]);

        return true;
    }
}

图片切换的动画效果

            imageSwitcher.setInAnimation(this,R.anim.fada_in);
            imageSwitcher.setInAnimation(this,R.anim.fada_out);

TextViewer

同ImageSwitcher一样,TextView是实现文本的切换,里面的内容是文本

你可能感兴趣的:(2018-06-05-ImageSwitcher 和TextView)