① 新建项目
② 定义layout 外部resource 的xml 文件,用来改变layout 的背景
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="Gallery">
<attr name="android:galleryItemBackground" />
</declare-styleable>
<!-- 定义layout 外部resource 的xml 文件,用来改变layout 的背景图。 -->
</resources>
③ 修改main.xml布局,添加一个Gallery和一个ImageView
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget_absolutelayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<Gallery
android:layout_width="fill_parent"
android:layout_height="143px"
android:layout_x="0px"
android:layout_y="51px"
android:id="@+id/Gallery_preView">
</Gallery>
<ImageView
android:layout_width="239px"
android:layout_height="218px"
android:layout_x="38px"
android:layout_y="184px"
android:id="@+id/ImageView_photo">
</ImageView>
</AbsoluteLayout>
④ 新建一个myImageAdapter类--Gallery的适配器,它继承于BaseAdapter类.
package zyf.Ex_Ctrl_10ME;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
public class myImageAdapter extends BaseAdapter {
@Override
public int getCount() {
// TODO Auto-generated method stub
return 0;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
return null;
}
}
⑤ 修改mainActivity.java,添加Gallery相关操作
package zyf.Ex_Ctrl_10ME;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.Toast;
public class Ex_Ctrl_10ME extends Activity {
/** Called when the activity is first created. */
/*定义要使用的对象*/
private Gallery gallery;
private ImageView imageview;
private myImageAdapter imageadapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imageadapter=new myImageAdapter(this);
/* 通过findViewById 取得 资源对象*/
gallery=(Gallery)findViewById(R.id.Gallery_preView);
imageview=(ImageView)findViewById(R.id.ImageView_photo);
/*给Gallery设置适配器 把Ex_Ctrl_10ME类传入参数*/
gallery.setAdapter(imageadapter);
/*设置Gallery的点击事件监听器*/
gallery.setOnItemClickListener(new Gallery.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
// TODO Auto-generated method stub
/*显示该图片是几号*/
Toast.makeText(Ex_Ctrl_10ME.this,
"这是图片:"+position+"号", Toast.LENGTH_SHORT).show();
/*设置大图片*/
imageview.setBackgroundResource(imageadapter.myImageIds[position]);
}
});
}
}
⑥ 修改myImageAdapter.java文件,实现相簿浏览效果
package zyf.Ex_Ctrl_10ME;
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;
public class myImageAdapter extends BaseAdapter{//自定义的类变量
/*变量声明*/
int mGalleryItemBackground;
private Context context;//上下文
/* 构建一Integer array 并取得预加载Drawable 的图片id */
public Integer[] myImageIds = { R.drawable.photo1, R.drawable.photo2,
R.drawable.photo3, R.drawable.photo4, R.drawable.photo5,
R.drawable.photo6, };
/*自定义的构造方法*/
public myImageAdapter(Context context) {
// TODO Auto-generated constructor stub
this.context=context;
/*
* 使用在res/values/attrs.xml 中的<declare-styleable>定义 的Gallery 属性.
*/
TypedArray typed_array=context.obtainStyledAttributes(R.styleable.Gallery);
/* 取得Gallery 属性的Index id */
mGalleryItemBackground=typed_array.getResourceId(R.styleable.Gallery_android_galleryItemBackground, 0);
/* 让对象的styleable 属性能够反复使用 */
typed_array.recycle();
}
/* 重写的方法getCount,返回图片数目 */
@Override
public int getCount() {
// TODO Auto-generated method stub
return myImageIds.length;
}
/* 重写的方法getItemId,返回图像的数组id */
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
/* 重写的方法getView,返回一View 对象 */
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
/* 产生ImageView 对象 */
ImageView imageview = new ImageView(context);
/* 设置图片给imageView 对象 */
imageview.setImageResource(myImageIds[position]);
/* 重新设置图片的宽高 */
imageview.setScaleType(ImageView.ScaleType.FIT_XY);
/* 重新设置Layout 的宽高 */
imageview.setLayoutParams(new Gallery.LayoutParams(128, 128));
/* 设置Gallery 背景图 */
imageview.setBackgroundResource(mGalleryItemBackground);
/* 返回imageView 对象 */
return imageview;
}
}
分享到:
相关推荐
在Android开发中,`Gallery`控件是一种非常实用的组件,它允许用户通过左右滑动来展示一系列的项目,类似于iOS中的Carousel或者Pinterest的布局。`Gallery`控件基于`AbsListView`,提供了水平方向上的滚动浏览体验。...
在Android开发中,`Gallery`组件是一个非常有用的控件,它允许用户在多个项目之间进行水平滑动选择,常用于图像浏览或者选项选择等场景。本篇将详细讲解如何实现一个具有循环滚动、选中放大功能,并且可以使用按键...
**Android Gallery控件详解** Android Gallery控件是Android SDK中提供的一种用于展示一系列项的水平滚动视图。这个控件可以用来创建一个类似图片轮播的效果,用户可以通过左右滑动来浏览不同的项目。在Android早期...
Gallery是Android平台上一个用于展示图片或视频的控件,它在早期版本的Android SDK中被广泛使用,提供了用户浏览媒体内容的滚动界面。这个"Gallery1_Gallery.zip"压缩包很可能是包含了一个示例项目,展示了如何在...
在Android平台上,`Gallery`组件是一个非常有用的控件,它允许用户通过水平滑动来浏览一系列的图片或项目。在早期的Android版本中,`Gallery`是实现轮播效果的常见选择,但在Android 3.0(API级别11)之后,`...
《Android_Gallery3D源码解析》 Gallery3D是Android平台上的一款3D图片浏览应用,它展示了Android系统中3D图形处理和图像展示的强大能力。这个应用的源码提供了深入理解Android图形库、线程管理、数据加载优化以及...
在Android系统中,Gallery是一个用于展示图片和视频的视图组件,它允许用户通过水平滑动来浏览多媒体内容。在Android 4.0(API级别14)版本中,Gallery已经被废弃,取而代之的是更强大的GridView和RecyclerView。...
在Android开发中,`Gallery`组件是用于展示一系列图片或者选项的一个控件,它允许用户通过左右滑动来浏览。然而,`Gallery`在新版本的Android SDK中已经被弃用,取而代之的是`HorizontalScrollView`或者`ViewPager`...
在Android开发中,`Gallery`控件是一种非常实用的组件,它允许用户通过左右滑动来展示一系列的项目,常用于图片轮播、菜单选择等场景。然而,原生的`Gallery`控件在Android API 17之后就被废弃了,但通过一些技巧和...
在Android开发中,`Gallery`组件是用于展示一系列图片或者视图的一种滚动控件,它允许用户通过左右滑动来浏览各个项目。`Gallery`在早期版本的Android API中被广泛使用,但在API 16之后已被弃用,取而代之的是更现代...
在Android平台上,`Gallery`组件是早先版本中用于展示一系列图像或选择图片的一个控件。这个小例子展示了如何在Android应用中集成和使用`Gallery`控件,以实现一个可滚动的图片画廊功能。下面我们将深入探讨`Gallery...
在Android系统中,Gallery是一个用于展示图片或视频的控件,尤其在早期版本如Android 4.0(Ice Cream Sandwich)中,它被广泛用于应用和系统的图片浏览功能。本篇将深入解析Android 4.0的Gallery源码,帮助你理解其...
3. 设置适配器到Gallery: ```java Gallery gallery = (Gallery) findViewById(R.id.gallery); gallery.setAdapter(new CustomAdapter(this)); ``` 老版Gallery的问题在于,它在API 11之后被废弃,因为它的功能被新...
在Android开发中,`Gallery`组件是一个非常有用的控件,它允许用户在水平轴上滑动浏览多个项目,常用于实现图片浏览或者选项选择。在本主题中,我们将深入探讨如何利用`Gallery`来实现图片滑动,并且在选中图片时...
在Android开发中,`Gallery`组件是Android早期版本(API level 16及以下)提供的一种可以水平滑动浏览图片或项目的控件。它允许用户通过手指滑动来浏览一串连续的视图,通常用于展示照片或者进行选择操作。然而,...
在Android开发中,循环Gallery是实现轮播图或者图片浏览的一种常见组件,它允许用户通过手势或按钮在多个图片之间进行切换。在这个特定的需求中,我们不仅需要让Gallery实现循环滚动,还要在选中图片时对其进行放大...
在Android开发中,`Gallery`组件是一个非常实用的控件,它允许用户通过左右滑动来浏览和选择项目,常用于图片浏览、菜单选择等场景。在这个特定的案例中,我们关注的是如何实现图片的自动切换功能,这在创建图片轮播...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ... android:id="@+id/gallery" android:layout_width="fill_parent" android:layout_height="230px" /> </LinearLayout>
Android 程序技术 本节课程内容:Gallery 高级控件-画廊视图 高级控件-画廊视图 Advanced controls - Gallery view 画廊Gallery能够水平方向显示内容,并且可用手指直接拖动图片移动,一般用来浏览图片,被选中的...
在Android开发中,`Gallery`组件是一个非常有用的视图,它允许用户通过左右滑动来浏览一系列的项目,常用于图片或选项的选择。本篇文章将深入解析`Gallery`组件的基本使用,以及与其相关的`ImageSwitcher`组件。 ...