activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
tools:context=".MainActivity"
android:gravity="bottom" >
<ImageSwitcher
android:id="@+id/myImageSwitcher"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp" />
<Gallery
android:id="@+id/myGallery"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/> </LinearLayout>

grid_lyout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"> <ImageView
android:id="@+id/myImg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="center"
/> </LinearLayout>

MainActivity.java

public class MainActivity extends Activity {
private Gallery myGallery=null;
private SimpleAdapter mySimpleAdapter=null;
private List<Map<String,Integer>> list=new ArrayList<Map<String,Integer>>();
private ImageSwitcher myImageSwitcher=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); this.myGallery=(Gallery)super.findViewById(R.id.myGallery);
this.myGallery.setOnItemClickListener(new OnItemClickListenerImpl());
this.initAdapter();
this.myGallery.setAdapter(this.mySimpleAdapter);
this.myImageSwitcher=(ImageSwitcher)super.findViewById(R.id.myImageSwitcher);
this.myImageSwitcher.setFactory(new ViewFactoryImpl());
} private void initAdapter(){
Field[] fields=R.drawable.class.getDeclaredFields();//取得全部属性
for (int i = 0; i < fields.length; i++) {
if(fields[i].getName().startsWith("png_")){ //以png_开头的文件
Map<String,Integer> map=new HashMap<String, Integer>();
try{
map.put("img", fields[i].getInt(R.drawable.class));
}catch(Exception e){ }
this.list.add(map);
}
}
this.mySimpleAdapter=new SimpleAdapter(
this,
this.list,
R.layout.grid_layout,
new String[] {"img"},
new int[]{R.id.myImg}
);
} private class OnItemClickListenerImpl implements OnItemClickListener{ @Override
public void onItemClick(AdapterView<?> parent, View view, int postion,
long id) {
// TODO Auto-generated method stub
//Toast.makeText(MainActivity.this, String.valueOf(postion), Toast.LENGTH_SHORT).show();
Map<String, Integer> map=(Map<String,Integer>) parent.getAdapter().getItem(postion);
MainActivity.this.myImageSwitcher.setImageResource(map.get("img"));
} } private class ViewFactoryImpl implements ViewFactory{ @Override
public View makeView() {
ImageView img=new ImageView(MainActivity.this);
img.setBackgroundColor(0xFFFFFFFF);
img.setScaleType(ImageView.ScaleType.CENTER);
img.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
return img;
} }

Android学习笔记 Gallery图库组件的使用的更多相关文章

  1. Android学习笔记之JSON数据解析

    转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...

  2. Android学习笔记之Activity详解

    1 理解Activity Activity就是一个包含应用程序界面的窗口,是Android四大组件之一.一个应用程序可以包含零个或多个Activity.一个Activity的生命周期是指从屏幕上显示那 ...

  3. 【转】 Pro Android学习笔记(八二):了解Package(1):包和进程

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在之前,我们已经学习了如何签发apk,见P ...

  4. 【转】 Pro Android学习笔记(七六):服务(1):local和remote

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ Android提供服务,服务是运行在后台的 ...

  5. 【转】Pro Android学习笔记(二三):用户界面和控制(11):其他控件

    目录(?)[-] Chronometer计时器控件 倒计时CountDownTimer Switch控件 Space控件 其他控件 Android提供了很多控件,基本上都是view的扩展. Chron ...

  6. 【转】Pro Android学习笔记(三):了解Android资源(上)

    在Android开发中,资源包括文件或者值,它们和执行应用捆绑,无需在源代码中写死,因此我们可以改变或替换他们,而无需对应用重新编译. 了解资源构成 参考阅读Android学习笔记(三八):资源res ...

  7. 【转】Pro Android学习笔记(二):开发环境:基础概念、连接真实设备、生命周期

    在Android学习笔记(二):安装环境中已经有相应的内容.看看何为新.这是在source网站上的Android架构图,和标准图没有区别,只是这张图颜色好看多了,录之.本笔记主要讲述Android开发 ...

  8. Android学习笔记:Home Screen Widgets(2):关于Widget

    通过widget定义,我们在widget列表中看到了我们的TestWidget.当我们拖拽widget到主页时,假设在appwidet-provider中定义了android:configure的ja ...

  9. Android学习笔记(一)

    目录 Android学习笔记(一) 一.JDK.Android SDK 二.部分项目结构 三.字符串引用 四.外层build.gradle详解 五.app->build.gradle详解 六.日 ...

随机推荐

  1. android选中radiobutton后改变TextColor

    首先,看下效果图,以护照为例 然后选中护照后 可以看到 字体由黑色变成了白色 下面说下实现方法. 首先 在values文件夹下的color.xml文件中加入<drawable/>标签的颜色 ...

  2. thinkphp中的多字段模糊匹配

    引言:有时候查询要匹配多个字段.比如查询地址,地址是由多个字段组成的.有省.市.区等等,以及详细地址.这个时候如何查询呢? 实现不同字段相同的查询条件 $User = M("User&quo ...

  3. Redis存储AccessToken

    AccessToken 2小时有效. 就不要每次都调取了,这样会造成浪费. 或者存入Session中,设置过期时间. 或者存入Redis中,设置过期时间. 过期之后,进行重新获取. <?php ...

  4. django-settings.py配置

    django settings 详细资料 ############ 开始项目 python3.5 pip -m install django==1.11.7 指定版本安装 pip3 install d ...

  5. python开发函数进阶:递归函数

    一,什么叫递归 #递归#在一个函数里调用自己#python递归最大层数限制 997#最大层数限制是python默认的,可以做修改#但是我们不建议你修改 例子和尚讲故事 #!/usr/bin/env p ...

  6. js中的requestAnimationFrame

    js中的requestAnimationFrame requestAnimationFrame的作用就是重绘 一个简单的demo如下 <!DOCTYPE html> <html la ...

  7. 如何卸载win10的自带应用

    win10自带了好多应用,有些看起来不错,其实用起来不太方便哈(我的个人感觉),我们都更喜欢第三方应用,所以我们就来看看如何卸载这些自带应用.如图,是卸载完成后的Windows PowerShell: ...

  8. (转)CSS布局-负边距-margin

    css中的负边距(negative margin)是布局中的一个常用技巧,只要运用得合理常常会有意想不到的效果.很多特殊的css布局方法都依赖于负边距,所以掌握它的用法对于前端的同学来说,那是必须的. ...

  9. Sequence(尺取)

    A sequence of N positive integers (10 < N < 100 000), each of them less than or equal 10000, a ...

  10. PHP 获取二维数组中某个key的集合

    本文为代码分享,也是在工作中看到一些“大牛”的代码,做做分享. 具体是这样的,如下一个二维数组,是从库中读取出来的. 代码清单: $user = array( 0 => array( 'id'  ...