Gallery:android:galleryItemBackground 什么效果

源码下载地址:http://download.csdn.net/detail/flyingsir_zw/9658434

设置

android:galleryItemBackground

后的效果

不设置的效果如下:

设置

android:galleryItemBackground

的方法如下:

1.项目目录res/values/attrs.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <declare-styleable name="HelloGallery">
        <attr name="android:galleryItemBackground" />
    </declare-styleable>

</resources>

2.Gallery  自定义适配器中   构造方法中初始化 引用即可如下代码

public class MygalleryAdapter extends BaseAdapter {

	private Context mContext;
	private Integer[] data;
	private int mGalleryItemBackground;

	public MygalleryAdapter(Context context, Integer[] data) {
		this.mContext = context;
		this.data = data;
		// 获取自定义的属性值,res/values/attrs.xml
		TypedArray attr = mContext
				.obtainStyledAttributes(R.styleable.HelloGallery);
		mGalleryItemBackground = attr.getResourceId(
				R.styleable.HelloGallery_android_galleryItemBackground, 0);
		attr.recycle();
	}
}

源码下载地址:http://download.csdn.net/detail/flyingsir_zw/9658434

完整适配器代码

public class MygalleryAdapter extends BaseAdapter {

	private Context mContext;
	private Integer[] data;
	private int mGalleryItemBackground;

	public MygalleryAdapter(Context context, Integer[] data) {
		this.mContext = context;
		this.data = data;
		// 获取自定义的属性值,res/values/attrs.xml
		TypedArray attr = mContext
				.obtainStyledAttributes(R.styleable.HelloGallery);
		mGalleryItemBackground = attr.getResourceId(
				R.styleable.HelloGallery_android_galleryItemBackground, 0);
		attr.recycle();
	}

	@Override
	public int getCount() {

		return data.length;
	}

	@Override
	public Object getItem(int position) {

		return null;
	}

	@Override
	public long getItemId(int position) {

		return 0;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {

		ViewHolder mViewHolder;
		if (convertView == null) {
			convertView = View.inflate(mContext, R.layout.gv_list_item, null);
			// 创建一个绑定对象
			mViewHolder = new ViewHolder();
			// 初始化控件
			mViewHolder.img = (ImageView) convertView.findViewById(R.id.img);
			mViewHolder.img.setBackgroundResource(mGalleryItemBackground);
			// 绑定
			convertView.setTag(mViewHolder);
		} else {
			// 从绑定对戏里重新获取一个View
			mViewHolder = (ViewHolder) convertView.getTag();
		}
		// 赋值
		mViewHolder.img.setImageResource(data[position]);
		return convertView;
	}
	static class ViewHolder {
		ImageView img;
	}

}

完整类代码

public class MainActivity extends Activity implements ViewFactory {

	private Gallery mGallery;
	private MygalleryAdapter mygalleryAdapter;

	// references to our images
	private Integer[] mThumbIds = null;

	private ImageSwitcher mImageSwitcher;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		initDataSource();

		// 获取控件
		mGallery = (Gallery) this.findViewById(R.id.gallery);
		mGallery.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				mImageSwitcher.setImageResource(mThumbIds[position]);
			}
		});
		// 创建一个视图切换器
		mImageSwitcher = (ImageSwitcher) this.findViewById(R.id.imageSwitcher);
		// 切换器上面不能直接显示图片
		// 需要实现这个接口,然后实现makeView()创建一个控件
		mImageSwitcher.setFactory(this);

		initAdapter();
	}

	// 1 初始化数据源
	private void initDataSource() {
		mThumbIds = new Integer[] { R.drawable.sample_2, R.drawable.sample_3,
				R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6,
				R.drawable.sample_7, R.drawable.sample_0, R.drawable.sample_1,
				R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4,
				R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7,
				R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2,
				R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5,
				R.drawable.sample_6, R.drawable.sample_7 };
	}

	private void initAdapter() {
		mygalleryAdapter = new MygalleryAdapter(this, mThumbIds);
		mGallery.setAdapter(mygalleryAdapter);
		mGallery.setSelection(mThumbIds.length / 2);
	}

	@Override
	public View makeView() {
		// 因为ImageSwitcher控件上面不能直接显示图片,需要创建一个可以显示图片控件
		ImageView img = new ImageView(this);
		// 先new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)
		// 最后在前面添加一个ImageSwitcher
		img.setLayoutParams(new ImageSwitcher.LayoutParams(
				LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
		img.setScaleType(ImageView.ScaleType.FIT_XY);
		img.setImageResource(mThumbIds[mThumbIds.length / 2]);
		return img;
	}
}

xml布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <Gallery
        android:id="@+id/gallery"
        android:layout_width="fill_parent"
        android:layout_height="120dip"
        android:layout_alignParentTop="true" />

    <ImageSwitcher
        android:id="@+id/imageSwitcher"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/gallery" />

</RelativeLayout>

gallery  适配器自布局  xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:scaleType="fitXY"
        android:layout_centerVertical="true"/>

</RelativeLayout>

源码下载地址:http://download.csdn.net/detail/flyingsir_zw/9658434

源码下载地址:http://download.csdn.net/detail/flyingsir_zw/9658434

源码下载地址:http://download.csdn.net/detail/flyingsir_zw/9658434

时间: 2024-08-07 05:06:38

Gallery:android:galleryItemBackground 什么效果的相关文章

Android编程滑动效果之Gallery+GridView实现图片预览功能(附demo源码下载)_Android

本文实例讲述了Android编程滑动效果之Gallery+GridView实现图片预览功能.分享给大家供大家参考,具体如下: Android系统自带一个GridView和Gallery两个控件,GridView网格显示,Gallery单个浏览,两者结合起来可以真正实现Gallery浏览图片效果. 本示例通过GridView和Gallery两个控件,模仿实现一个完整的仿Gallery图像集的图片浏览效果.效果图如下: 1.GridView 首先,自定义一个GridImageAdapter图片适配器

Android编程滑动效果之Gallery仿图像集浏览实现方法_Android

本文实例讲述了Android编程滑动效果之Gallery仿图像集浏览实现方法.分享给大家供大家参考,具体如下: Android系统自带一个Gallery浏览图片的应用,通过手指拖动时能够非常流畅的显示图片,用户交互和体验都很好. 本示例就是通过Gallery和自定义的View,模仿实现一个仿Gallery图像集的图片浏览效果.效果图如下: 1.基本原理 在 Activity 中实现 OnGestureListener 的接口 onFling() 手势事件,通过自定义的 View 绘制draw()

android gallery 动画-android.widget.Gallery.setAnimationDuration(1000);没有效果,什么情况。

问题描述 android.widget.Gallery.setAnimationDuration(1000);没有效果,什么情况. 自定义了MyGallery extends Gallery 然后设置动画时间myGallery.setAnimationDuration(1000); 然后Gallery中的item在切换(myGallery.setSelection())的时候, 切换的时间还是默认400毫秒 这是什么原因造成的?

Android实现仿gallery垂直滚动的效果

Android实现仿gallery垂直滚动的效果  效果图:  附件里是整个工程,如果喜欢可以下载看下.我感觉挺复杂的,如果需要的时候可以研究下,哈哈 实现垂直滚动的gallery.rar

Android编程滑动效果之Gallery仿图像集浏览实现方法

本文实例讲述了Android编程滑动效果之Gallery仿图像集浏览实现方法.分享给大家供大家参考,具体如下: Android系统自带一个Gallery浏览图片的应用,通过手指拖动时能够非常流畅的显示图片,用户交互和体验都很好. 本示例就是通过Gallery和自定义的View,模仿实现一个仿Gallery图像集的图片浏览效果.效果图如下: 1.基本原理 在 Activity 中实现 OnGestureListener 的接口 onFling() 手势事件,通过自定义的 View 绘制draw()

Android编程滑动效果之倒影效果实现方法(附demo源码下载)_Android

本文实例讲述了Android编程滑动效果之倒影效果实现方法.分享给大家供大家参考,具体如下: 前面介绍了使用<Android编程实现3D滑动旋转效果的方法>,现在介绍图片倒影实现,先看效果图 这里主要通过自定义Gallery和ImageAdapter(继承自BaseAdapter)实现 1.倒影绘制 ImageAdapter继承自BaseAdapter,详细实现可见前面关于Android Gallery的用法.这里重点介绍倒影原理及实现 倒影原理: 倒影效果是主要由原图+间距+倒影三部分组成,

Android编程滑动效果之倒影效果实现方法(附demo源码下载)

本文实例讲述了Android编程滑动效果之倒影效果实现方法.分享给大家供大家参考,具体如下: 前面介绍了使用<Android编程实现3D滑动旋转效果的方法>,现在介绍图片倒影实现,先看效果图 这里主要通过自定义Gallery和ImageAdapter(继承自BaseAdapter)实现 1.倒影绘制 ImageAdapter继承自BaseAdapter,详细实现可见前面关于Android Gallery的用法.这里重点介绍倒影原理及实现 倒影原理: 倒影效果是主要由原图+间距+倒影三部分组成,

android 2种效果求实现方法。。。有截图。。。

问题描述 android 2种效果求实现方法...有截图... ** 可以左右滑动,里面是文字,还可以上下滑动文字...我只做过图片的... ** ----------------------分割线----------------------------- 注意看图片边角(小半圆)...是怎么实现的,我已经确认过了图片是方形的,应该是覆盖了... 我不知道怎么覆盖的... 解决方案 android-support-v4.jar中的viewpager,里面是scrollview.覆盖,用relat

android tab切换效果如图???求实现思路

问题描述 android tab切换效果如图???求实现思路 解决方案 Android实现Tab切换效果总结 解决方案二: 其实这个效果分块解释,这样的效果不难.上面的四个按钮要做style,选择和非选择要有相应的图片背景就ok了. 解决方案三: 谢谢,我真正想问的是 上边 白色 和 灰色倾斜的的圆角只能用图片?? 解决方案四: 上边的白色和灰色,用图片实现比较快,而且方便.也可以做动画什么的. 解决方案五: 上边的是使用图片显示,下面使用Viewpager就行了.