Gallery是Android中的图片库控件。先看效果,爽一番

源码下载

一、简介

  在中心锁定,水平显示列表的项。

二、实例

1.布局文件

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

<Gallery xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gallery"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<Gallery android:id="@+id/gallery1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:spacing="16dp"
/>

</LinearLayout>


</LinearLayout>

2.属性文件

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

<resources>

<declare-styleable name="TogglePrefAttrs">
<attr name="android:preferenceLayoutChild" />
</declare-styleable>

<!-- These are the attributes that we want to retrieve from the theme
in view/Gallery1.java -->
<declare-styleable name="Gallery1">
<attr name="android:galleryItemBackground" />
</declare-styleable>

<declare-styleable name="LabelView">
<attr name="text" format="string" />
<attr name="textColor" format="color" />
<attr name="textSize" format="dimension" />
</declare-styleable>
</resources>

3.代码

/**
*
*/
package wjq.WidgetDemo;

import android.R.layout;
import android.app.Activity;
import android.content.Context;
import android.content.res.TypedArray;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.Contacts.People;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.SimpleCursorAdapter;
import android.widget.SpinnerAdapter;
import android.widget.Toast;
import android.widget.AdapterView.AdapterContextMenuInfo;

/**
* @author 记忆的永恒
*
*/
public class GalleryDemo extends Activity {
private Gallery gallery;
private Gallery gallery1;

/*
* (non-Javadoc)
*
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.gallerypage);
gallery = (Gallery) findViewById(R.id.gallery);
gallery.setAdapter(new ImageAdapter(this));

registerForContextMenu(gallery);

Cursor c = getContentResolver().query(People.CONTENT_URI, null, null, null, null);
startManagingCursor(c);

SpinnerAdapter adapter = new SimpleCursorAdapter(this,
// Use a template that displays a text view
android.R.layout.simple_gallery_item,
// Give the cursor to the list adatper
c,
// Map the NAME column in the people database to...
new String[] {People.NAME},
// The "text1" view defined in the XML template
new int[] { android.R.id.text1 });

gallery1= (Gallery) findViewById(R.id.gallery1);
gallery1.setAdapter(adapter);
}

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
menu.add("Action");
}

@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
.getMenuInfo();
Toast.makeText(this, "Longpress: " + info.position, Toast.LENGTH_SHORT)
.show();
return true;
}

public class ImageAdapter extends BaseAdapter {
int mGalleryItemBackground;
private Context mContext;

private Integer[] mImageIds = { R.drawable.b, R.drawable.c,
R.drawable.d, R.drawable.f, R.drawable.g };

public ImageAdapter(Context context) {
mContext = context;

TypedArray a = obtainStyledAttributes(R.styleable.Gallery1);
mGalleryItemBackground = a.getResourceId(
R.styleable.Gallery1_android_galleryItemBackground, 0);
a.recycle();
}

@Override
public int getCount() {
return mImageIds.length;
}

@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 i = new ImageView(mContext);

i.setImageResource(mImageIds[position]);
i.setScaleType(ImageView.ScaleType.FIT_XY);
i.setLayoutParams(new Gallery.LayoutParams(300, 400));

// The preferred Gallery item background
i.setBackgroundResource(mGalleryItemBackground);

return i;
}

}


}

更多相关文章

  1. 解决Android(安卓)Studio 无法在线更新的问题
  2. AndroidStudio中的gradle脚本文件解读
  3. coco2dx编译到android出现please define NDK_ROOT解决办法
  4. Android(安卓)删除sdcard目录中的某些目录文件
  5. android实现文件下载功能
  6. Android将byte数组写入文件
  7. android 显示pdf文件内容
  8. Android(安卓)子fragment中获取父fragment中的控件
  9. xposed框架的检测和反制

随机推荐

  1. Android(安卓)中 KeyEvent keycode 配置
  2. 教你搞定Android自定义ViewGroup
  3. Android(安卓)TextView根据textsize计算T
  4. Android中用Git来抓取你感兴趣列表的提交
  5. Android(安卓)ListView CheckBox状态错乱
  6. android 的view类的setVisibility();值的
  7. 使用IntelliJ IDEA搭建phoneGap for Andr
  8. Android源码编译后
  9. 新浪微博布局学习——妙用TabHost
  10. Android开发之蓝牙(Bluetooth)---源码目录