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 ;
}
}

};

}

运行结果

Android之手机壁纸的改变

更多相关文章

  1. Android Studio 3.0以后打包修改文件名方法
  2. Android 下载文件至SD卡,并用progressBar显示下载进度
  3. Android 文件IO总结
  4. Android--取出SDcard卡上指定后缀名的文件
  5. AndroidManifest.xml文件详解(service)
  6. Android 实现 选择文件对话框
  7. Android   收集索引贴
  8. Android attrs文件(自定义)属性详解

随机推荐

  1. android 中调用ajax的问题
  2. android 限定 EditText字符输入个数
  3. android life cycle
  4. ok6410 android driver(7)
  5. android 多媒体部分学习笔记十--简单视频
  6. Android handler用法详解二(例2)
  7. Android浏览器开发 WebView setBlockNetw
  8. android java.lang.IllegalStateExceptio
  9. android 各版本与api值 对应表
  10. Android - 对话框(Dialog)和通知(Notific