博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
控件:Gallery --- 3.(实现图片切换)
阅读量:6291 次
发布时间:2019-06-22

本文共 3068 字,大约阅读时间需要 10 分钟。

                                           ◆使用Gallery + ImageSwitcher完成图片浏览功能

grid_layout.xml

View Code

 

main.xml

View Code

 

MyGalleryDemo.java

View Code
import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Gallery; import android.widget.ImageSwitcher; import android.widget.ImageView; import android.widget.LinearLayout.LayoutParams; import android.widget.SimpleAdapter; import android.widget.ViewSwitcher.ViewFactory; public class MyGalleryDemo extends Activity {
// 图片浏览 private Gallery gallery = null; private List
> list = new ArrayList
>() ; private SimpleAdapter simpleAdapter = null; // 适配器 private ImageSwitcher myImageSwitcher = null ; // 图片切换 @Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); // 调用布局文件 super.setContentView(R.layout.main); // 初始化适配器 this.initAdapter() ; // 取得组件 this.gallery = (Gallery) super.findViewById(R.id.myGallery) ; // 取得组件 this.myImageSwitcher = (ImageSwitcher) super.findViewById(R.id.myImageSwitcher); // 设置图片工厂 this.myImageSwitcher.setFactory(new ViewFactoryImpl()) ; // 设置图片集 this.gallery.setAdapter(this.simpleAdapter); // 设置单击事件 this.gallery.setOnItemClickListener(new OnItemClickListenerImpl()) ; } private class OnItemClickListenerImpl implements OnItemClickListener {
@SuppressWarnings("unchecked") @Override public void onItemClick(AdapterView
parent, View view, int position,long id) { // 取出Map Map
map = (Map
) MyGalleryDemo .this.simpleAdapter.getItem(position); // 设置显示图片 MyGalleryDemo.this.myImageSwitcher.setImageResource(map.get("img")); } } // 初始化适配器 public void initAdapter(){ Field[] fields = R.drawable.class.getDeclaredFields(); for (int x = 0; x < fields.length; x++) { // 所有ispic_*命名的图片 if (fields[x].getName().startsWith("ispic_")){ // 定义Map Map
map = new HashMap
() ; try { // 设置图片资源 map.put("img", fields[x].getInt(R.drawable.class)) ; } catch (Exception e) { } // 保存Map this.list.add(map) ; } } // 实例化SimpleAdapter this.simpleAdapter = new SimpleAdapter( this, this.list, // 要包装的数据集合 R.layout.grid_layout, // 要使用的显示模板 new String[] { "img" }, // 定义要显示的Map的Key new int[] {R.id.img }); // 与模板中的组件匹配 } // 定义视图工厂类 private class ViewFactoryImpl implements ViewFactory { @Override public View makeView() { // 实例化图片显示 ImageView img = new ImageView(MyGalleryDemo.this); // 设置背景颜色 img.setBackgroundColor(0xFFFFFFFF); // 居中显示 img.setScaleType(ImageView.ScaleType.CENTER); // 自适应图片大小 img.setLayoutParams(new ImageSwitcher.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));// 定义组件 return img; } } }

 

                 

          

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载地址:http://zjcta.baihongyu.com/

你可能感兴趣的文章
modprobe
查看>>
android中用ExpandableListView实现三级扩展列表
查看>>
%Error opening tftp://255.255.255.255/cisconet.cfg
查看>>
java读取excel、txt 文件内容,传到、显示到另一个页面的文本框里面。
查看>>
《从零开始学Swift》学习笔记(Day 51)——扩展构造函数
查看>>
python多线程队列安全
查看>>
[汇编语言学习笔记][第四章第一个程序的编写]
查看>>
android 打开各种文件(setDataAndType)转:
查看>>
补交:最最原始的第一次作业(当时没有选上课,所以不知道)
查看>>
Vue实例初始化的选项配置对象详解
查看>>
PLM产品技术的发展趋势 来源:e-works 作者:清软英泰 党伟升 罗先海 耿坤瑛
查看>>
vue part3.3 小案例ajax (axios) 及页面异步显示
查看>>
浅谈MVC3自定义分页
查看>>
.net中ashx文件有什么用?功能有那些,一般用在什么情况下?
查看>>
select、poll、epoll之间的区别总结[整理]【转】
查看>>
CSS基础知识(上)
查看>>
PHP中常见的面试题2(附答案)
查看>>
26.Azure备份服务器(下)
查看>>
mybatis学习
查看>>
LCD的接口类型详解
查看>>