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

  

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

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

()

1、搭建布局

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" > <ImageView
android:id="@+id/img"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:layout_margin="30dp"
android:src="@drawable/ic_launcher" /> <Gallery
android:id="@+id/gallery"
android:layout_below="@id/img"
android:layout_margin="20dp"
android:spacing="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" /> </RelativeLayout>

activity_main.xml

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

 public class MainActivity extends Activity implements OnItemSelectedListener {

     Gallery gallery;
ImageView img;
int[] imgId = new int[6]; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
MyBaseAdapter adapter = new MyBaseAdapter();
gallery.setAdapter(adapter);
gallery.setOnItemSelectedListener(this); } private void initView() {
for (int i = 0; i < imgId.length; i++) {
try {
imgId[i] = R.drawable.class.getField("img0"+(i+1)).getInt(null);
} catch (Exception e) {
e.printStackTrace();
}
} gallery = (Gallery) findViewById(R.id.gallery);
img = (ImageView) findViewById(R.id.img);
} class MyBaseAdapter extends BaseAdapter{ @Override
public int getCount() {
return imgId.length;
} @Override
public Object getItem(int position) {
return null;
} @Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
convertView = new ImageView(MainActivity.this);
}
ImageView iv = (ImageView) convertView; //设置数据
iv.setImageResource(imgId[position]); return convertView;
} } @Override
public void onItemSelected(AdapterView<?> parent, View view, int position,
long id) { img.setImageResource(imgId[position]); } @Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub } }

MainActivity.java

Android BaseAdapter Gallery 画廊视图 (左右拖动图片列表拖至中间时图片放大显示)的更多相关文章

  1. android学习---Gallery画廊视图

    Gallery与Spinner有共同父类:AbsPinner.说明Gallery与Spinner都是一个列表框. 它们之间的差别在于Spinner显示的是一个垂直的列表选择框,而Gallery显示的是 ...

  2. Ant Design -- 图片可拖拽效果,图片跟随鼠标移动

    Ant Design 图片可拖拽效果,图片跟随鼠标移动,需计算鼠标在图片中与图片左上角的X轴的距离和鼠标在图片中与图片左上角的Y轴的距离. constructor(props) { super(pro ...

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

    Gallery与之前讲的Spinner有共同的父类:AbsSpinner,表明Gallery和Spinner都是一个列表框.他们之间的区别在于Spinner显示的是一个垂直的列表框,而Gallery显 ...

  4. android 32 Gallery:横着滚动的列表

    Gallery:横着滚动的列表 mainActivity.java package com.sxt.day05_01; import java.util.ArrayList; import java. ...

  5. jQuery图片列表拖拽排序布局

    在线演示 本地下载

  6. Android应用开发学习之画廊视图

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 画廊视图Gallery能按水平方向显示一组图片,并可以拖动图片.下面我们来看一个使用画廊视图的例子,其运行效果如下: ...

  7. <Android>列表、网格、画廊视图及适配器的绑定

    列表视图和适配器的绑定 列表视图既可以使用ListView组件,也可以继承ListActivity.显示可以是ArrayAdapter,也可以是游标SimpleCursorAdapter,还可以是继承 ...

  8. android学习日记17--Gallery(画廊视图)

    一.Gallery 1.简述 Gallery有道翻译为画廊,就叫它画廊控件,主要用来可切换的图片展示,左右滑动可以选择上一张或下一张图片. 个人感觉蛮实用的,不过google貌似不推荐使用啊! 2.常 ...

  9. 画廊视图(Gallery)的功能和用法

    Gallery与Spinner组件有共同的父类:AbsSpinner,表明Gallery和Spinner是同一个列表框.它们之间的区别是Spinner显示的垂直的列表选择框,而Gallery显示的是一 ...

随机推荐

  1. android - 模拟器连接本地tomcat

    在使用android真机试图连接本地的tomcat的时候,发现一直没有反应.网上搜了很多资料,加上自己不断测试,后来发现模拟器访问tomcat的时候,ip的概念跟在pc上访问tomcat用的ip,根本 ...

  2. XML约束图解

  3. 关于ligerui和其他前端脚本的学习方法(适用于自己)

    特别是看别人的源代码(来源于自己看的那个cms系统),比如ligerui,别人用的juery和ligerui结合的很灵活,比如下面一段代码 var itemiframe = "#framec ...

  4. Jssdk微信分享

    <?php require_once "jssdk.php"; $jssdk = new JSSDK("yourAppID", "yourApp ...

  5. Day3 set集合、函数和装饰器

    set特性:无序,不重复,可嵌套 创建setset_example = set("123", "213", "234", "432 ...

  6. [Struts2学习笔记] -- 环境配置

    在创建好WebProject后,就可以开始进行Struts2的环境配置,可以到Struts2官网下载,本环境使用struts-2.3.24.1版本. 首先导入必要的jar包到WebProject的/W ...

  7. socket本地模拟UDP 服务器+客户端(三)

    UDP: TCP是建立可靠连接,并且通信双方都可以以流的形式发送数据.相对TCP,UDP则是面向无连接的协议. 使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就可以直接发数据包. ...

  8. file upload download

    1. 文件上传与下载 1.1 文件上传 案例: 注册表单/保存商品等相关模块! --à 注册选择头像 / 商品图片 (数据库:存储图片路径 / 图片保存到服务器中指定的目录) 文件上传,要点: 前台: ...

  9. Swift互用性:与 Cocoa 数据类型共舞(Swift 2.0版)-b

    本节内容包括: 字符串(Strings) 数值(Numbers) 集合类(Collection Classes) 错误(Errors) Foundation数据类型(Foundation Data T ...

  10. 转:hadoop知识整理

    文章来自于:http://tianhailong.com/hadoop%E7%9F%A5%E8%AF%86%E6%95%B4%E7%90%86.html 按照what.how.why整理了下文章,帮助 ...