Gallery画廊视图

画廊视图使用Gallery表示,能够按水平方向显示内容,并且可以手指直接拖动图片和移动,一般用
来浏览图片,,被选中的选项位于中间,并且可以响应事件显示信息.在使用画廊视图时,首先在屏幕
上添加Gallery组件,通常使用标记在XML而布局文件中添加.

  

画廊视图在4.0后已经过期,但是我们仍然可以使用,不过后面我们将用水平的ListView
自定义组件来实现这个效果,在自定义视图中讲解。

常用属性:
1. android:animationDuration 用于设置列表项切换时的动画持续时间
2. android:gravity 用于设置对齐方式
3. android:spacing 用于设置列表项之间的间距
4. android:unselectedAlpha 用于设置没有选中的列表项的透明度

1、搭建布局

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     android:layout_width="match_parent"
 3     android:layout_height="match_parent" >
 4
 5     <ImageView
 6         android:id="@+id/img"
 7         android:layout_width="match_parent"
 8         android:layout_height="wrap_content"
 9         android:layout_centerHorizontal="true"
10         android:adjustViewBounds="true"
11         android:scaleType="fitXY"
12         android:layout_margin="30dp"
13         android:src="@drawable/ic_launcher" />
14
15     <Gallery
16         android:id="@+id/gallery"
17         android:layout_below="@id/img"
18         android:layout_margin="20dp"
19         android:spacing="10dp"
20         android:layout_width="match_parent"
21         android:layout_height="wrap_content" />
22
23 </RelativeLayout>

activity_main.xml

2、MainActivity.java中将所有组件找到,并设置监听

 1 public class MainActivity extends Activity implements OnItemSelectedListener {
 2
 3     Gallery gallery;
 4     ImageView img;
 5     int[] imgId = new int[6];
 6
 7     @Override
 8     protected void onCreate(Bundle savedInstanceState) {
 9         super.onCreate(savedInstanceState);
10         setContentView(R.layout.activity_main);
11         initView();
12         MyBaseAdapter adapter = new MyBaseAdapter();
13         gallery.setAdapter(adapter);
14         gallery.setOnItemSelectedListener(this);
15
16
17     }
18
19     private void initView() {
20         for (int i = 0; i < imgId.length; i++) {
21             try {
22                 imgId[i] = R.drawable.class.getField("img0"+(i+1)).getInt(null);
23             } catch (Exception e) {
24                 e.printStackTrace();
25             }
26         }
27
28         gallery = (Gallery) findViewById(R.id.gallery);
29         img = (ImageView) findViewById(R.id.img);
30     }
31
32     class MyBaseAdapter extends BaseAdapter{
33
34         @Override
35         public int getCount() {
36             return imgId.length;
37         }
38
39         @Override
40         public Object getItem(int position) {
41             return null;
42         }
43
44         @Override
45         public long getItemId(int position) {
46             // TODO Auto-generated method stub
47             return 0;
48         }
49
50         @Override
51         public View getView(int position, View convertView, ViewGroup parent) {
52             if(convertView == null){
53                 convertView = new ImageView(MainActivity.this);
54             }
55             ImageView iv = (ImageView) convertView;
56
57             //设置数据
58             iv.setImageResource(imgId[position]);
59
60             return convertView;
61         }
62
63     }
64
65     @Override
66     public void onItemSelected(AdapterView<?> parent, View view, int position,
67             long id) {
68
69         img.setImageResource(imgId[position]);
70
71     }
72
73     @Override
74     public void onNothingSelected(AdapterView<?> parent) {
75         // TODO Auto-generated method stub
76
77     }
78
79
80 }

MainActivity.java

时间: 2024-10-31 16:41:55

Gallery画廊视图的相关文章

android学习---Gallery画廊视图

Gallery与Spinner有共同父类:AbsPinner,说明Gallery与Spinner都是一个列表框.它们之间的区别在于Spinner显示的是一个垂直的列表选择框,而Gallery显示的是一个水平的列表选择框.Spinner的作用是供用户选择,而Gallery则允许用户通过拖动查看上一个,下一个. Gallery用法与Spinner的用法形似,只要为它提供一个内容Adapter就可以了.Adapter的getView方法返回View作为Gallery列表的列表项.如果程序需要监控Gal

Android 自学之画廊视图(Gallery)功能和用法

Gallery与之前讲的Spinner有共同的父类:AbsSpinner,表明Gallery和Spinner都是一个列表框.他们之间的区别在于Spinner显示的是一个垂直的列表框,而Gallery显示的是一个水平的列表框.Gallery与Spinner有一个区别:Spinner的作用是供用户选择,而Gallery则允许用户通过拖动来查看上一个.下一个列表项. Gallery常用的XML属性及相关方法 XML属性 相关方法 说明 android:animationDuration setAnim

&lt;Android&gt;列表、网格、画廊视图及适配器的绑定

列表视图和适配器的绑定 列表视图既可以使用ListView组件,也可以继承ListActivity.显示可以是ArrayAdapter,也可以是游标SimpleCursorAdapter,还可以是继承BaseAdapter展示其它视图. Cursor c = getContentResolver().query(People.CONTENT_URI, null, null, null, null); //获得通讯录联系人游标对象Cursor startManagingCursor(c); //实

仿百度壁纸client(六)——完结篇之Gallery画廊实现壁纸预览已经项目细节优化

仿百度壁纸client(六)--完结篇之Gallery画廊实现壁纸预览已经项目细节优化 百度壁纸系列 仿百度壁纸client(一)--主框架搭建,自己定义Tab + ViewPager + Fragment 仿百度壁纸client(二)--主页自己定义ViewPager广告定时轮播图 仿百度壁纸client(三)--首页单向,双向事件冲突处理,壁纸列表的实现 仿百度壁纸client(四)--自己定义上拉载入实现精选壁纸墙 仿百度壁纸client(五)--实现搜索动画GestureDetector

UI组件之AdapterView及其子类(四)Gallery画廊控件使用

听说 Gallery如今已经不使用了,API使用ViewPaper取代了,以后再学专研ViewPaper吧如今说说Gallery画廊,就是不停显示图片的意思 Gallery是用来水平滚动的显示一系列项目.Gallery组件能够横向显示一个图像列表,当单击当前图像的后一个图像时,这个图像列表会向左移动一格,当单击当前图像的前一个图像时,这个图像列表会向右移动一样. 也能够通过拖动的方式来向左和向右移动图像列表在使用Gallery的时候,我们应指定他的背景.不然它的项目会紧凑的贴在一起.不会产生画廊

仿百度壁纸客户端(六)——完结篇之Gallery画廊实现壁纸预览已经项目细节优化

仿百度壁纸客户端(六)--完结篇之Gallery画廊实现壁纸预览已经项目细节优化 百度壁纸系列 仿百度壁纸客户端(一)--主框架搭建,自定义Tab + ViewPager + Fragment 仿百度壁纸客户端(二)--主页自定义ViewPager广告定时轮播图 仿百度壁纸客户端(三)--首页单向,双向事件冲突处理,壁纸列表的实现 仿百度壁纸客户端(四)--自定义上拉加载实现精选壁纸墙 仿百度壁纸客户端(五)--实现搜索动画GestureDetector手势识别,动态更新搜索关键字 仿百度壁纸客

Swift - 使用CollectionView实现图片Gallery画廊效果(左右滑动浏览图片)

1,效果图 (1)图片从左至右横向排列(只有一行),通过手指拖动可以前后浏览图片. (2)视图滚动时,每张图片根据其与屏幕中心距离的不同,显示尺寸也会相应地变化.越靠近屏幕中心尺寸就越大,远离屏幕中心的就逐渐变小. (3)滑动结束后,会有位置自动修正的功能.即将当前最靠近屏幕中点的图片移动到正中央. (4)点击图片则将该图片删除,点击空白处会在最开始的位置插入一张图片.不管新增还是删除都有动画效果. (5)点击导航栏上的"切换"按钮,可以在普通的流式布局和我们自定义的画廊布局间相互切换

android之路Gallery 画廊

Gallery是一个内部元素能够水平滚动,而且能够把当前选择的子元素定位在它中心的布局组件. 我们还是直接看看样例的执行效果. 1.新疆项目HelloGallery 2.把须要展示的图片放入res/drawable文件夹.woman01.jpg.woman02.jpg,woman03.jpg 3.res/layout/activity_main.xml文件的内容例如以下: <FrameLayout xmlns:android="http://schemas.android.com/apk/

Android新手入门2016(15)--Gallery画廊

本文来自肥宝传说之路,引用必须注明出处! Gallery是Android查看图片的一个工具,用户使用非常方便. 可以通过左右滑动来查看不同的图片 代码比较简单,但是还是搞了一整天,因为碰到了一些问题. 主要是图片的来源问题,这里是通过Java的映射机制和R文件来获得drawable目录下的图片. 不过要注意,drawable类里面是有很多系统本身的属性,有些是不能显示出来的,所以要过滤,否则会报错. 另外放在drawable里面的图片,必须是png格式的.解决这两个问题就好办很多了. activ