Android 画廊控件Gallary。将图片显示成连续的带状。

package com.gallerydemo;import java.lang.reflect.Field;
import java.util.ArrayList;import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;public class MainActivity extends Activity {/************************************** 画廊控件的使用Gallery* * 1.Gallery 显示的是一个水平的列表选择框允许用户通过拖动来显示上一个下一个列表项 2.使用步骤:a:定义布局文件 b:定义数据适配器类* c:关联Gallery控件和数据适配器 d:为Gallery每个item添加事件。* 3.由于使用大量图片可能出现内存溢出,API16已经废弃,HorizontableScroolView和ViewPager* ************************************/private Gallery gallery; // 在API 16中已经不再支持private String TAG = "GalleryDemo";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);gallery = (Gallery) findViewById(R.id.gallery);// 关联Gallery和数据适配器try {gallery.setAdapter(new ImageAdapter(this));} catch (IllegalArgumentException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();}Log.i(TAG, "====5");gallery.setOnItemClickListener(new OnItemClickListener() {// @Override/** parent:指向数据适配器的指针 v:对应于item view的句柄* position:item在数据适配器adapter中的位置 id:item在数据适配器的第几行*/public void onItemClick(AdapterView parent, View v, int position,long id) {// TODO Auto-generated method stubMainActivity.this.setTitle(String.valueOf(position));Log.i(TAG, "position: " + position + "id: " + id);}});}/** BaseAdapter就Android应用程序中经常用到的基础数据适配器,它的主要用途是将一组数据传到像ListView、Spinner、* Gallery及GridView等UI显示组件,它是继承自接口类Adapter, 有关BaseAdapter* http://www.cnblogs.com/mandroid/archive/2011/04/05/2005525.html*/// 为Gallery提供数据源private class ImageAdapter extends BaseAdapter {private Context mContext;private ArrayList<Integer> imgList = new ArrayList<Integer>();private ArrayList<Object> imgSize = new ArrayList<Object>();// 建立与资源之间的关联public ImageAdapter(Context context) throws IllegalArgumentException,IllegalAccessException {mContext = context;// 利用反射机制来获取资源中的图片ID和尺寸Field[] fields = R.drawable.class.getDeclaredFields();for (Field field : fields) {if (!"ic_launcher".equals(field.getName()))// 除了icon之外的图片{int index = field.getInt(R.drawable.class);imgList.add(index);// 这里把int 转换成了Integerint size[] = new int[2];Bitmap bmImg = BitmapFactory.decodeResource(getResources(),index);size[0] = bmImg.getWidth();size[1] = bmImg.getHeight();imgSize.add(size);}}}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn imgList.size();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stub// int是JAVA的一个基本类型,而Integer是JAVA的一个类,对应// int。因为在某些地方不可以用int而要用Integer。而且基本类型运算的速度也要快。ImageView i = new ImageView(mContext);i.setImageResource(imgList.get(position).intValue());i.setScaleType(ImageView.ScaleType.FIT_XY);int size[] = new int[2];size = (int[]) imgSize.get(position);i.setLayoutParams(new Gallery.LayoutParams(size[0], size[1]));return i;}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

资源文件main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><Galleryandroid:id="@+id/gallery"android:layout_width="fill_parent"android:layout_height="fill_parent"></Gallery></LinearLayout>

Android 画廊控件Gallary相关推荐

  1. 第31讲 UI组件之 Gallery画廊控件

    第31讲 UI组件之 Gallery画廊控件 1.Gallery的简介 Gallery(画廊)是一个锁定中心条目并且拥有水平滚动列表的视图,一般用来浏览图片,并且可以响应事件显示信息.Gallery只 ...

  2. Android开源控件收集整理

    一 .基本控件 TextView HTextView 一款支持TextView文字动画效果的Android组件库.GitHub - hanks-zyh/HTextView: Animation eff ...

  3. Android开源控件ViewPager Indicator的使用方法

     1月16日厦门 OSC 源创会火热报名中,奖品多多哦   摘要 Android开源控件ViewPager Indicator的使用介绍 ViewPagerIndicator 目录[-] 1. V ...

  4. 日历控件的android代码,Android日历控件PickTime代码实例

    Android日历控件PickTime代码实例 发布时间:2020-10-03 16:05:51 来源:脚本之家 阅读:86 作者:手撕高达的村长 最近做项目,需要设置用户的生日,所以做这样一个功能. ...

  5. android 获取控件高度_安卓开发入门教程UI控件_ImageView

    什么是ImageView ImageView是用于显示图片的UI控件. 基础样例 1.展示本地图片 效果图 代码 <ImageViewandroid:layout_width="wra ...

  6. xamarin.android 控件,Android 库控件 - Xamarin | Microsoft Docs

    Xamarin Android 库控件Xamarin.Android Gallery control 03/15/2018 本文内容 Gallery是一种布局小组件,用于显示水平滚动列表中的项,并将当 ...

  7. android 获取控件在屏幕中的坐标

    今天,简单讲讲android如何获取控件在屏幕中的坐标. 这个其实也很简单,但是昨天做一个功能时,需要功能控件的坐标做一些逻辑操作时,居然不知道怎么做.所以在网上查找了资料后,解决了这个问题.这里记录 ...

  8. Android图表控件MPAndroidChart——曲线图LineChart的使用(财富收益图)

    目录 前言 本文涉及文章 其他相关文章 1.数据准备 1.1 数据来源 2.曲线展示 2.1 MPAndroidChart获取 2.2 数据对象获取 2.3 数据展示 3.曲线完善 3.1 图表背景. ...

  9. Android AutoCompleteTextView控件实现类似百度搜索提示,限制输入数字长度

    Android AutoCompleteTextView 控件实现类似被搜索提示,效果如下 1.首先贴出布局代码 activity_main.xml: <?xml version="1 ...

最新文章

  1. Hue、Hive、Sentry、Airflow、Oozie
  2. python3 set 集合 简介
  3. Java向MySQL数据库插入时间类型Date数据时需要注意的问题
  4. jquery: 一些常见的获取
  5. vant-image本地图片无法显示
  6. python格式化输出之format用法
  7. Marketing Cloud的notification的OData实现
  8. 常用的方法论-PARR
  9. AES加密例子(python和php版本)
  10. debian启动mysql_debian下的mysql服务突然启动失败
  11. 用户画像pdf_【金猿产品展】易观方舟:智能用户数据中台
  12. matlab gui 进度条,MATLAB GUI 之自制进度条
  13. MIPS单周期CPU
  14. 华为云.通信云服务激活无限商业潜力
  15. 前端--开发“抽屉新热榜”
  16. Makefile中echo和@echo、和的区别
  17. 巴伦变压器的选型和设计
  18. 【某集训题解】【DAY 2 T3】与非
  19. NeurIPS 2022 | Stable Diffusion采样速度翻倍!清华提出扩散模型高效求解器
  20. 基于蜉蝣优化算法的函数寻优算法

热门文章

  1. adguard和adblock哪个好_世界上最高级的广告拦截程序AdGuard过滤规则分享
  2. 深度学习训练经验之迭代次数与准确率之惑
  3. 九宫怎么排列和使用_剪映零基础入门教程第三十七篇:一学就会系列之九宫格小程序配音...
  4. ios 各种动画机制
  5. Elasticsearch如何提升查询效率
  6. 改进蚁群算法 改进flod算法对路径进行双向平滑度优化,提高路径的平滑度
  7. 《学雷锋日-志愿者服务行动》
  8. 从键盘读入学生成绩,找出最高分,并输出学生成绩等级,Java
  9. resure挽救笔记本系统和一些相关的操作记录
  10. App前端及后端接口,模拟数据及返回值