欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

ImageSwitcher实现引导页效果,imageswitcher引导,布局代码:```xml<

来源: javaer 分享于  点击 8321 次 点评:1

ImageSwitcher实现引导页效果,imageswitcher引导,布局代码:```xml<


布局代码:```xml<?xml version="1.0" encoding="UTF-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent">

<ImageSwitcher    android:id="@+id/imageSwitcher"    android:layout_width="fill_parent"    android:layout_height="fill_parent"></ImageSwitcher><RelativeLayout    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:orientation="vertical">    <LinearLayout        android:id="@+id/ll_view"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:layout_marginBottom="30dp"        android:gravity="center_horizontal"        android:orientation="horizontal">    </LinearLayout></RelativeLayout>

</FrameLayout>

页面代码:```javapublic class ImageSwitcherActivity extends Activity implements ViewSwitcher.ViewFactory, View.OnTouchListener {    private int[] imgIds;//图片id数组    private int currentPosition;//当前选中的图片id序号    private ImageSwitcher mImageSwitcher;//ImagaSwitcher 的引用    private float downX;//按下点的X坐标    private ImageView[] tips;//点点数组    private LinearLayout linearLayout;//装载点点的容器    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_switcher);        imgIds = new int[]{R.drawable.bg, R.drawable.c2, R.drawable.c3, R.drawable.c4, R.drawable.c5, R.drawable.c6, R.drawable.c7, R.drawable.c8, R.drawable.c9};        mImageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher);//实例化ImageSwitcher        mImageSwitcher.setFactory(this); //设置Factory        mImageSwitcher.setOnTouchListener(this);//设置OnTouchListener,我们通过Touch事件来切换图片        linearLayout = (LinearLayout) findViewById(R.id.ll_view);//指示器布局        tips = new ImageView[imgIds.length];        for (int i = 0; i < imgIds.length; i++) {            ImageView mImageView = new ImageView(this);            tips[i] = mImageView;            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));            layoutParams.rightMargin = 3;            layoutParams.leftMargin = 3;            mImageView.setBackgroundResource(R.drawable.page_indicator_unfocused);            linearLayout.addView(mImageView, layoutParams);        }        //上一个界面传过来的位置        currentPosition = getIntent().getIntExtra("position", 0);        mImageSwitcher.setImageResource(imgIds[currentPosition]);        setImageBackground(currentPosition);    }    //设置选中的tip的背景    private void setImageBackground(int selectItems) {        for (int i = 0; i < tips.length; i++) {            if (i == selectItems) {                tips[i].setBackgroundResource(R.drawable.page_indicator_focused);            } else {                tips[i].setBackgroundResource(R.drawable.page_indicator_unfocused);            }        }    }    @Override    public View makeView() {        final ImageView i = new ImageView(this);        i.setBackgroundColor(0xff000000);        i.setScaleType(ImageView.ScaleType.CENTER_CROP);        i.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));        return i;    }    @Override    public boolean onTouch(View v, MotionEvent event) {        switch (event.getAction()) {            case MotionEvent.ACTION_DOWN: {                downX = event.getX();//手指按下的X坐标                break;            }            case MotionEvent.ACTION_UP: {                float lastX = event.getX();                //抬起的时候的X坐标大于按下的时候就显示上一张图片                if (lastX > downX) {                    if (currentPosition > 0) {                        //设置动画                        mImageSwitcher.setInAnimation(AnimationUtils.loadAnimation(getApplication(), R.anim.left_in));                        mImageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(getApplication(), R.anim.right_out));                        currentPosition--;                        mImageSwitcher.setImageResource(imgIds[currentPosition % imgIds.length]);                        setImageBackground(currentPosition);                    } else {                        Toast.makeText(getApplication(), "已经是第一张", Toast.LENGTH_SHORT).show();                    }                }                if (lastX < downX) {                    if (currentPosition < imgIds.length - 1) {                        mImageSwitcher.setInAnimation(AnimationUtils.loadAnimation(getApplication(), R.anim.right_in));                        mImageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(getApplication(), R.anim.lift_out));                        currentPosition++;                        mImageSwitcher.setImageResource(imgIds[currentPosition]);                        setImageBackground(currentPosition);                    } else {                        Toast.makeText(getApplication(), "到了最后一张", Toast.LENGTH_SHORT).show();                    }                }            }            break;        }        return true;    }}
相关栏目:

用户点评