画廊视图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 }
- 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 数组属性和方法
- MySQL binlog_error_action分析
- docker(数据卷容器)
- Python炫技操作:模块重载的五种方法
- 一文搞定 Eureka 集群高可用配置
- SpringBoot三招组合拳,手把手教你打出优雅的后端接口
- 在bootstrap中col-md-offset-* 偏移不起作用
- ES6 模糊查询 智能联想(不区分大小写)
- 干货分享 | K8s 、Docker 常用命令汇总
- 干货 | YOLOV5 训练自动驾驶数据集,并转Tensorrt,收藏!
- Vue中watch的简单应用
- Go 使用标准库 net/rpc 包
- 强大的 Stream API(三)
- 微软发布代码智能新基准数据集CodeXGLUE,多角度衡量模型优劣
- 强大的 Stream API(二)
- 无限想象空间,用Python玩转3D人体姿态估计