zoukankan      html  css  js  c++  java
  • ImageView加ImageSwitch制作图片浏览器

    Main
    /*
    * 图片浏览器
    */

    public class MainActivity extends Activity implements ViewFactory{
    private Gallery gallery;
    private ImageSwitcher imageSwitcher;
    private int[] imageid=new int[]{R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher};
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            gallery=(Gallery) findViewById(R.id.gallery1);
            imageSwitcher=(ImageSwitcher) findViewById(R.id.imageSwitcher);
            GalleryAdapter galleryAdapter=new GalleryAdapter(this, imageid);
            gallery.setAdapter(galleryAdapter);
            imageSwitcher.setFactory(this);
            //设置进入出去动画
            imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
            imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));
     
            gallery.setOnItemClickListener(new OnItemClickListener() {
     
                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    //position从1开始
                    imageSwitcher.setImageResource(imageid[position%imageid.length]);
                }
     
            });
        }
        @Override
        public View makeView() {
            ImageView imageView=new ImageView(this);
            //设置imageswitch背景色
            imageView.setBackgroundColor(0xFF000000);
            imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
            return imageView;
        }
    }
     
    Adapter
     
    public class GalleryAdapter extends BaseAdapter{
        private Context context;
        private int[] imageid;
        int mGalleryItemBackground;
    public GalleryAdapter(Context context,int[] imageid) {
        this.context=context;
        this.imageid=imageid;
        //图像的显示风格
        TypedArray typedArray = context.obtainStyledAttributes(R.styleable.Gallery);
        mGalleryItemBackground = typedArray.getResourceId(
                R.styleable.Gallery_android_galleryItemBackground, 0);
    }
        @Override
        public int getCount() {
            return Integer.MAX_VALUE;
        }
     
        @Override
        public Object getItem(int position) {
            return imageid[position];
        }
     
        @Override
        public long getItemId(int position) {
            return position;
        }
     
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView imageView=new ImageView(context);
            imageView.setImageResource(imageid[position%imageid.length]);
            imageView.setBackgroundResource(mGalleryItemBackground);
            return imageView;
        }
     
    }
     
    res/values/attrs.xml
     
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <declare-styleable name="Gallery">
            <attr name="android:galleryItemBackground" />
        </declare-styleable>
    </resources>
     
    实现gallery无限循环,点击item,在imageswitch显示图片





  • 相关阅读:
    【iHMI43 液晶模块】【USB Mass storage 大容量存储设备 / 虚拟U盘代码包】
    [iBoard 电子学堂][第二卷 C程序设计语言 ]第二篇 数据类型与运算符
    【IAR EW STM8 1401】 破解方法
    [iBoard 电子学堂][第八卷 设计任意波发生器]第三篇 直接数字合成(DDS)原理
    发布《iCore》ARM + FPGA 双核心板
    [iBoard 电子学堂][第〇卷 电子基础 ]第三篇 单片微控制器、微处理器
    [iBoard 电子学堂][第二卷 C程序设计语言 ]第一篇 C语言简介
    【iCore双核心组合是开发板例程】【uCGUI 例程及代码包下载】
    发布《iBoard 电子学堂》基础例程之 8051 例程代码!
    【iBoard 电子学堂教程】【uCGUI 例程及代码包下载】
  • 原文地址:https://www.cnblogs.com/foreverstudent/p/3413224.html
Copyright © 2011-2022 走看看