main.xml布局文件

              <?        xml version        =        "        1.0        "         encoding        =        "        utf-8        "        ?>        
< LinearLayout xmlns:android = " http://schemas.android.com/apk/res/android "
android:orientation
= " vertical " android:layout_width = " fill_parent "
android:layout_height
= " fill_parent " >
< Button android:id = " @+id/clearWall "
android:layout_width
= " fill_parent "
android:layout_height
= " wrap_content "
android:text
= " 恢复默认墙纸 " />
< ImageView android:id = " @+id/currWall "
android:layout_width
= " 100px "
android:layout_height
= " 150px "
android:layout_gravity
= " center_horizontal " />
< Button android:id = " @+id/getWall "
android:layout_width
= " fill_parent "
android:layout_height
= " wrap_content "
android:text
= " 获取当前墙纸 " />
< Gallery android:id = " @+id/gallery "
android:layout_width
= " fill_parent "
android:layout_height
= " wrap_content " />
< Button android:id = " @+id/setWall "
android:layout_width
= " fill_parent "
android:layout_height
= " wrap_content "
android:text
= " 设置为当前墙纸 " />
</ LinearLayout >

清单文件

              <?        xml version        =        "        1.0        "         encoding        =        "        utf-8        "        ?>        
< manifest xmlns:android = " http://schemas.android.com/apk/res/android "
package = " com.ljq.activity "
android:versionCode
= " 1 "
android:versionName
= " 1.0 " >
< application android:icon = " @drawable/icon " android:label = " @string/app_name " >
< activity android:name = " .WallActivity "
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 - sdk android:minSdkVersion = " 7 " />
<!-- 设置手机墙纸权限 -->
< uses - permission android:name = " android.permission.SET_WALLPAPER " />
</ manifest >

WallAdapter自定义适配器

              package         com.ljq.activity;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;

public class WallAdapter extends BaseAdapter {
private int [] imgIds = null ;
private Context context = null ;

public WallAdapter( int [] imgIds, Context context) {
super ();
this .imgIds = imgIds;
this .context = context;
}

public int getCount() {
return imgIds.length;
}

public Object getItem( int position) {
// return imgIds[position];
return imgIds[position % imgIds.length]; // 可循环
}

public long getItemId( int position) {
return position;
}

public View getView( int position, View convertView, ViewGroup parent) {
ImageView imageView
= new ImageView(context);
imageView.setBackgroundResource(imgIds[position]);
// 设置ImageView的背景图片
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setLayoutParams(
new Gallery.LayoutParams( 120 , 120 ));
return imageView;
}

}

WallActivity类

              package         com.ljq.activity;

import java.io.IOException;
import java.io.InputStream;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.AdapterView.OnItemSelectedListener;

public class WallActivity extends Activity {
private int [] imgIds = {R.drawable.w1, R.drawable.w2, R.drawable.w3, R.drawable.w4};
private int selectIndex =- 1 ; // 被选中的图片在id数组中的索引
private ImageView currWall = null ;
private Gallery gallery = null ;
private Button clearWall = null ;
private Button getWall = null ;
private Button setWall = null ;
@Override
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.main);

gallery
= (Gallery)findViewById(R.id.gallery);
gallery.setAdapter(
new WallAdapter(imgIds, WallActivity. this ));
gallery.setSpacing(
5 );
gallery.setOnItemSelectedListener(
new OnItemSelectedListener(){
public void onItemSelected(AdapterView <?> parent, View view,
int position, long id) {
selectIndex
= position; // 记录被选中的图片索引
}

public void onNothingSelected(AdapterView <?> parent) {

}
});
currWall
= (ImageView)findViewById(R.id.currWall);
clearWall
= (Button)findViewById(R.id.clearWall);
getWall
= (Button)findViewById(R.id.getWall);
setWall
= (Button)findViewById(R.id.setWall);
clearWall.setOnClickListener(listener);
getWall.setOnClickListener(listener);
setWall.setOnClickListener(listener);
}

View.OnClickListener listener
= new View.OnClickListener(){

public void onClick(View v) {
Button btn
= (Button)v;
switch (btn.getId()) {
case R.id.clearWall: // 还原手机壁纸
try {
WallActivity.
this .clearWallpaper();
}
catch (IOException e) {
e.printStackTrace();
}
break ;
case R.id.getWall: // 设置ImageView显示的内容为当前墙纸
currWall.setBackgroundDrawable(getWallpaper());
break ;
case R.id.setWall: // 设置墙纸
InputStream in = WallActivity. this .getResources().openRawResource(imgIds[selectIndex]);
try {
setWallpaper(in);
}
catch (IOException e) {
e.printStackTrace();
}
break ;
}
}

};

}

运行结果

更多相关文章

  1. [Android] 环境优化配置Android(安卓)Studio发展NDK
  2. android使用CheckedTextView搭配listview完成选择列表
  3. Android(安卓)build.gradle 中 使用 buildConfigField 动态设置
  4. android 设置textview边框以及点击效果
  5. Android(安卓)手机bluetooth 名字的设置
  6. 初学Andriod之跑马灯属性设置
  7. Android(安卓)Studio Gradle相关异常记录
  8. android使用CheckedTextView搭配listview完成选择列表
  9. Android获取、设置桌面

随机推荐

  1. linux的0号进程和1号进程
  2. Linux 驱动面试题总结
  3. Linux命令之find(一)
  4. 从Android应用访问Chromebook的localhost
  5. MeeGo定位跨4大平台OS Novell主攻平板电
  6. linux下安装nginx,支持rewrite、ssl
  7. 在linux 列出 超级用户 普通用户和 系统
  8. Ubuntu 14.04 LTS 使用sudo免输密码
  9. 为SWIG指定Python头和库。
  10. 如何在qt上访问父窗口小部件?