【Android基础入门〖13〗】Gallery
2013-09-24 23:15
369 查看
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.javapackage 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.javapackage 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 结果展示
转载请注明出处!
相关文章推荐
- 解決Linux下Android开发真机调试设备不被识别问题
- [Android]在代码里运行另一个程序的方法
- [软件咨询]WPS2012正式版已发布 金山Office移动版4.0发布
- Android笔记-Linux Kernel Ftrace (Function Trace)解析
- android USB如何修改VID具体实现
- 深入Android Browser配置管理的详解
- Android Mms之:深入理解对话列表管理
- android 多线程技术应用
- Android之采用execSQL与rawQuery方法完成数据的添删改查操作详解
- Android数据类型之间相互转换系统介绍
- 通过Android trace文件分析死锁ANR实例过程
- Android实现左右滑动效果的方法详解
- Android 各国语言缩写及简称详细介绍
- Android 自动判断是电话,网址,EMAIL方法之Linkify的使用
- android IPC之binder通信机制
- Android应用开发中模拟按下HOME键的效果(实现代码)
- Android 读写文件方法汇总
- Android如何禁止横屏竖屏的变换
- Android中设置只有程序第一次运行才显示的界面实现思路
- android textview 显示html方法解析