主类内容: package com.and.test; import java.io.IOException; import java.io.InputStream; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.res.Resources; import android.content.res.TypedArray; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.Gallery; import android.widget.ImageView; import android.widget.Toast; public class Android0513 extends Activity { /** Called when the activity is first created. */ protected static InputStream is; private ImageAdapter mImageAdapter01; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //设置图档 Integer[] myImageIds = {R.drawable.google, R.drawable.helloking, R.drawable.chamberlain, R.drawable.king, R.drawable.with}; mImageAdapter01 = new ImageAdapter(Android0513.this, myImageIds); //设置图为Gallery的显示方式 Gallery g = (Gallery) findViewById(R.id.mygallery); g.setAdapter(mImageAdapter01); g.setOnItemClickListener(new Gallery.OnItemClickListener(){ public void onItemClick(AdapterView<?> parent, View v, final int position, long id) { new AlertDialog.Builder(Android0513.this).setTitle(R.string.app_about) //设置弹出窗口的图式 .setIcon(mImageAdapter01.myImageIds[position]) //设置弹出窗口的信息 .setMessage(R.string.app_about_msg) //确认窗口 .setPositiveButton(R.string.str_ok, new DialogInterface.OnClickListener() { public void onClick (DialogInterface dialoginterface, int i) { Resources resources = getBaseContext().getResources(); is = resources.openRawResource(mImageAdapter01.myImageIds[position]); try { //更换桌面 setWallpaper(is); //用Toast来显示桌面已更换 Toast.makeText(Android0513.this, getString(R.string.my_gallery_text_pre), Toast.LENGTH_LONG).show(); } catch (Exception e) { e.printStackTrace(); }; } }).setNegativeButton(R.string.str_no, new DialogInterface.OnClickListener() { //设置弹出窗口的返回事件 public void onClick (DialogInterface dialoginterface, int i) { //用Toast来显示桌面已取消 Toast.makeText(Android0513.this, getString(R.string.my_gallery_text_no), Toast.LENGTH_LONG).show(); } }).show(); } }); } public class ImageAdapter extends BaseAdapter { int mGalleryItemBackground; private Context mContext; private Integer[] myImageIds; public ImageAdapter(Context c, Integer[] aid) { mContext = c; myImageIds = aid; TypedArray a = obtainStyledAttributes(R.styleable.Gallery); mGalleryItemBackground = a.getResourceId(R.styleable.Gallery_android_galleryItemBackground, 0); a.recycle(); } @Override public int getCount() { // TODO Auto-generated method stub //获取图片的个数 return myImageIds.length; } @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 position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ImageView i = new ImageView(mContext); //设置图片给imageView i.setImageResource(myImageIds[position]); //重新设置图片的宽高 i.setScaleType(ImageView.ScaleType.FIT_XY); //重新设置Layout的宽高 i.setLayoutParams(new Gallery.LayoutParams(138,108)); //设置Gallery背景图 i.setBackgroundResource(mGalleryItemBackground); //返回imageView对象 return i; } } public void setWallpaper(InputStream data) throws IOException { super.setWallpaper(data); } } res/values/strings.xml文件内容 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, Android0513!</string> <string name="app_name">Android0513</string> <string name="app_about">重要</string> <string name="my_gallery_text_pre">已經更換桌布</string> <string name="my_gallery_text_no">已取消</string> <string name="app_about_msg">確定要換桌布嗎!?</string> <string name="str_ok">確定</string> <string name="str_no">取消</string> </resources> res/values/attrs.xml <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="Gallery"> <attr name="android:galleryItemBackground" /> </declare-styleable> </resources> /res/layout/main.xml: <?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <!-- 建立一個TextView --> <TextView android:id="@+id/myTextView1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <!-- 建立一個Gallery --> <Gallery xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mygallery" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_x="12px" android:layout_y="106px" /> </AbsoluteLayout> Androidmanifest.xml: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.and.test" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Android0513" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.SET_WALLPAPER" /> <uses-sdk android:minSdkVersion="3" /> </manifest>