zoukankan      html  css  js  c++  java
  • Android 之 Gallery

    1    在 xml 布局中添加 Gallery

    activity_main.xml
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <Gallery
            android:id="@+id/gallery"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    </LinearLayout>


    2    自定义 ImageAdapter

    ImageAdapter.java
    package com.example.gallery;
    import java.util.List;
    import android.content.Context;
    import android.content.res.TypedArray;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.Gallery;
    import android.widget.ImageView;
    @SuppressWarnings("deprecation")
    public class ImageAdapter extends BaseAdapter {
        
        private Context context;
        private List<Integer> list;
        private TypedArray typedArray;
        private int item_background;
        
        public ImageAdapter(Context context ,List<Integer> list)
        {
            this.context=context;
            this.list=list;
            this.typedArray = context.obtainStyledAttributes(R.styleable.gallery_style);
            item_background=typedArray.getResourceId(R.styleable.gallery_style_android_galleryItemBackground, 0);
            typedArray.recycle();
        }
        @Override
        public int getCount() {
            return list.size();
        }
        @Override
        public Object getItem(int position) {
            return 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(list.get(position));
            
            //设置伸缩规格
            imageView.setScaleType(ImageView.ScaleType.FIT_XY);
            
            //设置布局参数
            imageView.setLayoutParams(new Gallery.LayoutParams(150,100));
            
            //设置背景边框
            imageView.setBackgroundResource(item_background);
            
            return imageView;
        }
    }



    3    每个 ImageView 的背景参数

    res/values/attrs.xml
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <declare-styleable name="gallery_style">
            <attr name="android:galleryItemBackground" />
        </declare-styleable>
    </resources>


    4    在 MainActivity 中绑定数据与设置监听

    MainActivity.java
    package com.example.gallery;
    import java.util.ArrayList;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.Gallery;
    import android.widget.Toast;
    @SuppressWarnings("deprecation")
    public class MainActivity extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Gallery gallery=(Gallery)findViewById(R.id.gallery);
            
            ArrayList<Integer>list=new ArrayList<Integer>();
            list.add(R.drawable.img1);
            list.add(R.drawable.img2);
            list.add(R.drawable.img3);
            list.add(R.drawable.img4);
            list.add(R.drawable.img5);
            list.add(R.drawable.img6);
            list.add(R.drawable.img7);
            
            ImageAdapter adapter=new ImageAdapter(this,list);
            gallery.setAdapter(adapter);
            
            gallery.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {  
                @Override  
                public void onItemSelected(AdapterView<?> parent, View v,int position, long id) {  
                    Toast.makeText(getApplicationContext(), "选择了:  "+ 
                                   String.valueOf(position), Toast.LENGTH_SHORT).show();
                }  
                
                @Override  
                public void onNothingSelected(AdapterView<?> arg0) {  
                //这里不做响应  
                }  
            }); 
        }
    }


    5    图片资源

    注:图片最好为 png 格式的图片,由于jpg是压缩后的图片,在android 中解压缩有可能导致内存溢出错误。
     

    6    结果展示

     



    注:转载请注明出处 :)   毕竟代码是一个一个敲出来的啊,O(∩_∩)O~



  • 相关阅读:
    如何对抗硬件断点--- 调试寄存器
    学会破解要十招
    Ollydbg 中断方法浅探
    脱壳经验(二)--如何优化
    jquery 选择器,模糊匹配
    CSS实现内容超过长度后以省略号显示
    微信内置浏览器浏览H5页面弹出的键盘遮盖文本框的解决办法
    Exif.js获取图片的详细信息(苹果手机移动端上传图片旋转90度)
    jquery中的$("#id")与document.getElementById("id")的区别
    CentOS7 安装lua环境(我是在mysql读写分离用的)
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3339455.html
Copyright © 2011-2022 走看看