Android實(shí)現(xiàn)手機(jī)壁紙改變的方法
本文實(shí)例講述了Android實(shí)現(xiàn)手機(jī)壁紙改變的方法。分享給大家供大家參考。具體如下:
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="恢復(fù)默認(rèn)墻紙" />
<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="獲取當(dāng)前墻紙" />
<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="設(shè)置為當(dāng)前墻紙" />
</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" />
<!-- 設(shè)置手機(jī)墻紙權(quán)限 -->
<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];//可循環(huán)
}
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]);// 設(shè)置ImageView的背景圖片
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setLayoutParams(new Gallery.LayoutParams(120, 120));
return imageView;
}
}
WallActivity類(lèi):
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數(shù)組中的索引
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://還原手機(jī)壁紙
try {
WallActivity.this.clearWallpaper();
} catch (IOException e) {
e.printStackTrace();
}
break;
case R.id.getWall://設(shè)置ImageView顯示的內(nèi)容為當(dāng)前墻紙
currWall.setBackgroundDrawable(getWallpaper());
break;
case R.id.setWall://設(shè)置墻紙
InputStream in=WallActivity.this.getResources().openRawResource(imgIds[selectIndex]);
try {
setWallpaper(in);
} catch (IOException e) {
e.printStackTrace();
}
break;
}
}
};
}
運(yùn)行結(jié)果:

希望本文所述對(duì)大家的Android程序設(shè)計(jì)有所幫助。
相關(guān)文章
Android?Drawable代碼編寫(xiě)的新姿勢(shì)分享
Drawable是什么?按照字面翻譯,就是可繪制的,由于能夠繪制的東西很多,所以這個(gè)類(lèi)是一個(gè)抽象類(lèi),下面這篇文章主要給大家介紹了關(guān)于Android?Drawable代碼編寫(xiě)的新姿勢(shì),需要的朋友可以參考下2022-01-01
Android APP之WebView校驗(yàn)SSL證書(shū)的方法
這篇文章主要介紹了Android APP之WebView校驗(yàn)SSL證書(shū)的方法,需要的朋友可以參考下2017-09-09
Android DrawerLayout帶有側(cè)滑功能的布局類(lèi)(2)
這篇文章主要為大家詳細(xì)介紹了Android DrawerLayout帶有側(cè)滑功能的布局類(lèi),感興趣的小伙伴們可以參考一下2016-07-07
Android基于AudioManager、PhoneStateListener實(shí)現(xiàn)設(shè)置黑名單功能
這篇文章主要介紹了Android基于AudioManager、PhoneStateListener實(shí)現(xiàn)設(shè)置黑名單功能的方法,涉及Android操作手機(jī)通信錄及通話(huà)模式與手機(jī)狀態(tài)的相關(guān)技巧,需要的朋友可以參考下2016-01-01
Android8.0適配前臺(tái)定位服務(wù)service的示例代碼
這篇文章主要介紹了Android8.0適配前臺(tái)定位服務(wù)service的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
Flutter打包apk報(bào)錯(cuò)Your?app?isn't?using?AndroidX解決
這篇文章主要為大家介紹了Flutter打包apk報(bào)錯(cuò)Your?app?isn't?using?AndroidX解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
Android入門(mén)之ListView應(yīng)用解析(一)
這篇文章主要介紹了Android入門(mén)之ListView應(yīng)用,簡(jiǎn)單說(shuō)明了ListView的實(shí)現(xiàn),需要的朋友可以參考下2014-08-08

