`
he91_com
  • 浏览: 400981 次
文章分类
社区版块
存档分类
最新评论

Android 之 Gallery

 
阅读更多

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画廊用法

    在Android开发中,`Gallery`组件是用于展示一系列图片或者视图的一种滚动控件,它允许用户通过左右滑动来浏览各个项目。`Gallery`在早期版本的Android API中被广泛使用,但在API 16之后已被弃用,取而代之的是更现代...

    Android之Gallery和GridView两种方式与ImageSwitcher实现带预览的和幻灯片方式的两种图片浏览器

    具体说明可以参考博客:我的Android进阶之旅------&gt;Android之Gallery和GridView两种方式与ImageSwitcher实现带预览的和幻灯片方式的两种图片浏览器 博客地址:...

    Android应用源码之Gallery2_Android.zip

    Gallery2是一个针对Android平台的开源图片浏览应用,其源码为我们提供了一个深入理解Android系统中图片展示、手势操作以及图片库集成的实例。通过分析这个项目,我们可以学习到许多关于Android开发的重要知识点。 ...

    android 4.0 Gallery源码

    《Android 4.0 Gallery源码深度解析》 在Android操作系统的历史中,Android 4.0(冰淇淋三明治)是一个重要的里程碑,它引入了许多新特性和改进,其中包括对用户界面和应用程序的重大调整。Gallery应用作为系统内置...

    Android下Gallery控件的使用

    在Android开发中,`Gallery`控件是一种非常实用的组件,它允许用户通过左右滑动来展示一系列的项目,类似于iOS中的Carousel或者Pinterest的布局。`Gallery`控件基于`AbsListView`,提供了水平方向上的滚动浏览体验。...

    android gallery简单应用

    在Android平台上,`Gallery`组件是一个非常有用的控件,它允许用户通过水平滑动来浏览一系列的图片或项目。在早期的Android版本中,`Gallery`是实现轮播效果的常见选择,但在Android 3.0(API级别11)之后,`...

    Android 重写Gallery

    在Android开发中,`Gallery`组件是Android早期版本(API level 16及以下)提供的一种可以水平滑动浏览图片或项目的控件。它允许用户通过手指滑动来浏览一串连续的视图,通常用于展示照片或者进行选择操作。然而,...

    Android_Gallery3D源码(已编译)

    《Android_Gallery3D源码解析》 Gallery3D是Android平台上的一款3D图片浏览应用,它展示了Android系统中3D图形处理和图像展示的强大能力。这个应用的源码提供了深入理解Android图形库、线程管理、数据加载优化以及...

    Android中gallery图片自动切换Demo

    在Android开发中,`Gallery`组件是用于展示一系列图片或者选项的一个控件,它允许用户通过左右滑动来浏览。然而,`Gallery`在新版本的Android SDK中已经被弃用,取而代之的是`HorizontalScrollView`或者`ViewPager`...

    Android4.0的Gallery源码

    在Android系统中,Gallery是一个用于展示图片或视频的控件,尤其在早期版本如Android 4.0(Ice Cream Sandwich)中,它被广泛用于应用和系统的图片浏览功能。本篇将深入解析Android 4.0的Gallery源码,帮助你理解其...

    android4.0 Gallery相册 源代码

    在Android系统中,Gallery是一个用于展示图片和视频的视图组件,它允许用户通过水平滑动来浏览多媒体内容。在Android 4.0(API级别14)版本中,Gallery已经被废弃,取而代之的是更强大的GridView和RecyclerView。...

    Android Gallery

    **Android Gallery控件详解** Android Gallery控件是Android SDK中提供的一种用于展示一系列项的水平滚动视图。这个控件可以用来创建一个类似图片轮播的效果,用户可以通过左右滑动来浏览不同的项目。在Android早期...

    Android Gallery小例子

    在Android平台上,`Gallery`组件是早先版本中用于展示一系列图像或选择图片的一个控件。这个小例子展示了如何在Android应用中集成和使用`Gallery`控件,以实现一个可滚动的图片画廊功能。下面我们将深入探讨`Gallery...

    Android照片墙Gallery [源码]

    在Android开发中,"Android照片墙Gallery [源码]"是一个典型的项目,用于展示用户的照片集,类似于手机系统自带的相册应用。这个程序的核心功能是加载和显示图片,同时可能包含一些交互效果,如滑动浏览、缩放等。...

    android 循环gallery 选中放大 按键控制

    在Android开发中,`Gallery`组件是一个非常有用的控件,它允许用户在多个项目之间进行水平滑动选择,常用于图像浏览或者选项选择等场景。本篇将详细讲解如何实现一个具有循环滚动、选中放大功能,并且可以使用按键...

    Android应用源码之Gallery2.zip

    本文将针对"Android应用源码之Gallery2.zip"进行详尽解析。 1. **Gallery组件概述** Gallery是Android提供的一个水平滚动视图,它继承自AbsSpinner类,实现了ListView的水平版。在API 16(Android 4.1)之后,...

    android gallery 放大效果

    在Android开发中,`Gallery`组件是一个非常有用的控件,它允许用户在水平轴上滑动浏览多个项目,常用于实现图片浏览或者选项选择。在本主题中,我们将深入探讨如何利用`Gallery`来实现图片滑动,并且在选中图片时...

    Android应用源码之Gallery_Gallery.zip

    总之,通过分析和学习"Android应用源码之Gallery_Gallery.zip",你可以了解到Android Gallery组件的内部运作,这对于开发自定义的图片浏览或选择功能是非常有帮助的。同时,这也是一次提升Android UI组件理解和性能...

    Android应用源码之Gallery1_Gallery.zip

    Gallery是Android平台上一个用于展示图片或视频的控件,它在早期版本的Android SDK中被广泛使用,提供了用户浏览媒体内容的滚动界面。这个"Gallery1_Gallery.zip"压缩包很可能是包含了一个示例项目,展示了如何在...

Global site tag (gtag.js) - Google Analytics