1 在 xml 布局中添加 Gallery
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Gallery
android:id="@+id/gallery"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
2 自定义 ImageAdapter
ImageAdapter.java
package com.example.gallery;
import java.util.List;
import android.content.Context;
import android.content.res.TypedArray;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
@SuppressWarnings("deprecation")
public class ImageAdapter extends BaseAdapter {
private Context context;
private List<Integer> list;
private TypedArray typedArray;
private int item_background;
public ImageAdapter(Context context ,List<Integer> list)
{
this.context=context;
this.list=list;
this.typedArray = context.obtainStyledAttributes(R.styleable.gallery_style);
item_background=typedArray.getResourceId(R.styleable.gallery_style_android_galleryItemBackground, 0);
typedArray.recycle();
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = new ImageView(context);
//设置显示的图片
imageView.setImageResource(list.get(position));
//设置伸缩规格
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
//设置布局参数
imageView.setLayoutParams(new Gallery.LayoutParams(150,100));
//设置背景边框
imageView.setBackgroundResource(item_background);
return imageView;
}
}
3 每个 ImageView 的背景参数
res/values/attrs.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="gallery_style">
<attr name="android:galleryItemBackground" />
</declare-styleable>
</resources>
4 在 MainActivity 中绑定数据与设置监听
MainActivity.java
package com.example.gallery;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Gallery;
import android.widget.Toast;
@SuppressWarnings("deprecation")
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Gallery gallery=(Gallery)findViewById(R.id.gallery);
ArrayList<Integer>list=new ArrayList<Integer>();
list.add(R.drawable.img1);
list.add(R.drawable.img2);
list.add(R.drawable.img3);
list.add(R.drawable.img4);
list.add(R.drawable.img5);
list.add(R.drawable.img6);
list.add(R.drawable.img7);
ImageAdapter adapter=new ImageAdapter(this,list);
gallery.setAdapter(adapter);
gallery.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v,int position, long id) {
Toast.makeText(getApplicationContext(), "选择了: "+
String.valueOf(position), Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
//这里不做响应
}
});
}
}
5 图片资源
注:图片最好为 png 格式的图片,由于jpg是压缩后的图片,在android 中解压缩有可能导致内存溢出错误。
6 结果展示
注:转载请注明出处 :) 毕竟代码是一个一个敲出来的啊,O(∩_∩)O~
分享到:
相关推荐
在Android开发中,`Gallery`组件是用于展示一系列图片或者视图的一种滚动控件,它允许用户通过左右滑动来浏览各个项目。`Gallery`在早期版本的Android API中被广泛使用,但在API 16之后已被弃用,取而代之的是更现代...
具体说明可以参考博客:我的Android进阶之旅------>Android之Gallery和GridView两种方式与ImageSwitcher实现带预览的和幻灯片方式的两种图片浏览器 博客地址:...
Gallery2是一个针对Android平台的开源图片浏览应用,其源码为我们提供了一个深入理解Android系统中图片展示、手势操作以及图片库集成的实例。通过分析这个项目,我们可以学习到许多关于Android开发的重要知识点。 ...
《Android 4.0 Gallery源码深度解析》 在Android操作系统的历史中,Android 4.0(冰淇淋三明治)是一个重要的里程碑,它引入了许多新特性和改进,其中包括对用户界面和应用程序的重大调整。Gallery应用作为系统内置...
在Android开发中,`Gallery`控件是一种非常实用的组件,它允许用户通过左右滑动来展示一系列的项目,类似于iOS中的Carousel或者Pinterest的布局。`Gallery`控件基于`AbsListView`,提供了水平方向上的滚动浏览体验。...
在Android平台上,`Gallery`组件是一个非常有用的控件,它允许用户通过水平滑动来浏览一系列的图片或项目。在早期的Android版本中,`Gallery`是实现轮播效果的常见选择,但在Android 3.0(API级别11)之后,`...
在Android开发中,`Gallery`组件是Android早期版本(API level 16及以下)提供的一种可以水平滑动浏览图片或项目的控件。它允许用户通过手指滑动来浏览一串连续的视图,通常用于展示照片或者进行选择操作。然而,...
《Android_Gallery3D源码解析》 Gallery3D是Android平台上的一款3D图片浏览应用,它展示了Android系统中3D图形处理和图像展示的强大能力。这个应用的源码提供了深入理解Android图形库、线程管理、数据加载优化以及...
在Android开发中,`Gallery`组件是用于展示一系列图片或者选项的一个控件,它允许用户通过左右滑动来浏览。然而,`Gallery`在新版本的Android SDK中已经被弃用,取而代之的是`HorizontalScrollView`或者`ViewPager`...
在Android系统中,Gallery是一个用于展示图片或视频的控件,尤其在早期版本如Android 4.0(Ice Cream Sandwich)中,它被广泛用于应用和系统的图片浏览功能。本篇将深入解析Android 4.0的Gallery源码,帮助你理解其...
在Android系统中,Gallery是一个用于展示图片和视频的视图组件,它允许用户通过水平滑动来浏览多媒体内容。在Android 4.0(API级别14)版本中,Gallery已经被废弃,取而代之的是更强大的GridView和RecyclerView。...
**Android Gallery控件详解** Android Gallery控件是Android SDK中提供的一种用于展示一系列项的水平滚动视图。这个控件可以用来创建一个类似图片轮播的效果,用户可以通过左右滑动来浏览不同的项目。在Android早期...
在Android平台上,`Gallery`组件是早先版本中用于展示一系列图像或选择图片的一个控件。这个小例子展示了如何在Android应用中集成和使用`Gallery`控件,以实现一个可滚动的图片画廊功能。下面我们将深入探讨`Gallery...
在Android开发中,"Android照片墙Gallery [源码]"是一个典型的项目,用于展示用户的照片集,类似于手机系统自带的相册应用。这个程序的核心功能是加载和显示图片,同时可能包含一些交互效果,如滑动浏览、缩放等。...
在Android开发中,`Gallery`组件是一个非常有用的控件,它允许用户在多个项目之间进行水平滑动选择,常用于图像浏览或者选项选择等场景。本篇将详细讲解如何实现一个具有循环滚动、选中放大功能,并且可以使用按键...
本文将针对"Android应用源码之Gallery2.zip"进行详尽解析。 1. **Gallery组件概述** Gallery是Android提供的一个水平滚动视图,它继承自AbsSpinner类,实现了ListView的水平版。在API 16(Android 4.1)之后,...
在Android开发中,`Gallery`组件是一个非常有用的控件,它允许用户在水平轴上滑动浏览多个项目,常用于实现图片浏览或者选项选择。在本主题中,我们将深入探讨如何利用`Gallery`来实现图片滑动,并且在选中图片时...
总之,通过分析和学习"Android应用源码之Gallery_Gallery.zip",你可以了解到Android Gallery组件的内部运作,这对于开发自定义的图片浏览或选择功能是非常有帮助的。同时,这也是一次提升Android UI组件理解和性能...
Gallery是Android平台上一个用于展示图片或视频的控件,它在早期版本的Android SDK中被广泛使用,提供了用户浏览媒体内容的滚动界面。这个"Gallery1_Gallery.zip"压缩包很可能是包含了一个示例项目,展示了如何在...