画廊视图Gallery
时间:2022-04-23
本文章向大家介绍画廊视图Gallery,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
幻灯片图片浏览器
1.布局
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="vertical"
6 tools:context=".AndroidGalleryActivity" >
7
8 <ImageSwitcher
9 android:id="@+id/imgswi"
10 android:layout_width="320dp"
11 android:layout_height="320dp" />
12
13 <Gallery
14 android:id="@+id/gallery"
15 android:layout_width="match_parent"
16 android:layout_height="wrap_content"
17 android:layout_marginTop="25dp"
18 android:unselectedAlpha="0.6"
19 android:spacing="3pt"
20 />
21
22 </LinearLayout>
2.逻辑控制
1 package com.example.androidgallery;
2
3 import android.os.Bundle;
4 import android.app.Activity;
5 import android.content.res.TypedArray;
6 import android.support.v4.view.ViewPager.LayoutParams;
7 import android.view.Menu;
8 import android.view.View;
9 import android.view.ViewGroup;
10 import android.view.animation.AnimationUtils;
11 import android.widget.AdapterView;
12 import android.widget.AdapterView.OnItemSelectedListener;
13 import android.widget.BaseAdapter;
14 import android.widget.Gallery;
15 import android.widget.ImageSwitcher;
16 import android.widget.ImageView;
17 import android.widget.ViewSwitcher.ViewFactory;
18
19 public class AndroidGalleryActivity extends Activity {
20
21 int[] imageIds=new int[]{
22 R.drawable.mm,
23 R.drawable .mm2,
24 R.drawable.mm3,
25 R.drawable.mm4
26 } ;
27
28 @Override
29 protected void onCreate(Bundle savedInstanceState) {
30 super.onCreate(savedInstanceState);
31 setContentView(R.layout.activity_android_gallery);
32 final Gallery gallery=(Gallery)this.findViewById(R.id.gallery);
33 final ImageSwitcher imgswi=(ImageSwitcher)this.findViewById(R.id.imgswi);
34 //设置ViewFactory对象
35 imgswi.setFactory(new ViewFactory() {
36
37 @Override
38 public View makeView() {
39 ImageView imageView=new ImageView(AndroidGalleryActivity.this);
40 imageView.setBackgroundColor(0xff0000);
41 imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
42 imageView.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
43 return imageView;
44 }
45 });
46 //设置图片更换动画效果
47 imgswi.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
48 imgswi.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));
49 //创建一个BaseAdapter对象,负责提供Gallery显示每张图片
50 BaseAdapter adapter=new BaseAdapter() {
51
52 @Override
53 public View getView(int position, View convertview, ViewGroup parent) {
54 //创建一个ImageView
55 ImageView imageView=new ImageView(AndroidGalleryActivity.this);
56 imageView.setImageResource(imageIds[position%imageIds.length]);
57 //设置ImageView缩放类型
58 imageView.setScaleType(ImageView.ScaleType.FIT_XY);
59 imageView.setLayoutParams(new Gallery.LayoutParams(75,100));
60 /*TypedArray typeArray=obtainStyledAttributes(R.styleable.Gallery);
61 imageView.setBackgroundResource(TypedArray)*/
62 return imageView;
63 }
64
65 @Override
66 public long getItemId(int arg0) {
67 // TODO Auto-generated method stub
68 return arg0;
69 }
70
71 @Override
72 public Object getItem(int arg0) {
73 // TODO Auto-generated method stub
74 return arg0;
75 }
76
77 @Override
78 public int getCount() {
79 // TODO Auto-generated method stub
80 return imageIds.length;
81 }
82 };
83
84 gallery.setAdapter(adapter);
85 gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
86
87 @Override
88 public void onItemSelected(AdapterView<?> parent, View view,
89 int position, long id) {
90 // TODO Auto-generated method stub
91 imgswi.setImageResource(imageIds[position%imageIds.length]);
92 }
93
94 @Override
95 public void onNothingSelected(AdapterView<?> parent) {
96 // TODO Auto-generated method stub
97
98 }
99
100 });
101 }
102
103 @Override
104 public boolean onCreateOptionsMenu(Menu menu) {
105 // Inflate the menu; this adds items to the action bar if it is present.
106 getMenuInflater().inflate(R.menu.activity_android_gallery, menu);
107 return true;
108 }
109
110 }
- 干货,比较全面的c#.net公共帮助类(Common.Utility)
- Linux中如何恢复rm命令误删除的文件之extundelete编译安装及使用
- JDK1.7 安装加(一劳永逸的环境配置)
- Jquery 遍历数组之$().each方法与$.each()方法介绍
- ExtJs学习笔记(2)_Basic GridPanel[基本网格]
- Jquery 遍历数组之grep()方法介绍
- ExtJs学习笔记(1)_Hello World!
- Jquery filter()方法简介
- 加拿大滑铁卢大学刘腾博士:平行增强学习及其无人驾驶应用
- 曾六位数被秒的yadea.com 终端真是雅迪!
- 2018年IT行业必须面对的7个改变
- SqlTransaction 数据库编程事务使用示例
- 再谈web.config/app.config敏感数据加/解密的二种方法
- NVIDIA颁布最新禁令,GeForce不能再行深度学习了!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- IntelliJ IDEA 2020.2激活破解教程
- Java String 源码分析
- Java ArrayList 源码
- Java8 HashMap 源码分析
- 数据分析方法论-统计学内容学习
- 同步与异步 Python 有何不同?
- 非线性方程组求解迭代算法&图像寻初始值讲解
- MyBatis笔记
- 网络工程师提高篇 | 路由重发布你了解多少?从原理到配置,瑞哥带你学习一波!
- Python 为什么不支持 switch 语句?
- 2019河南科技学院发现杯
- 排序算法之希尔排序
- 排序算法之快速排序
- 干货 | Oracle数据库操作命令大全,满满的案例供你理解,收藏!
- 【2万字长文】深入浅出主流的几款小程序跨端框架原理