Android實現(xiàn)手機壁紙改變的方法
本文實例講述了Android實現(xiàn)手機壁紙改變的方法。分享給大家供大家參考。具體如下:
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è)置手機墻紙權(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類:
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://還原手機壁紙 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; } } }; }
運行結(jié)果:
希望本文所述對大家的Android程序設(shè)計有所幫助。
相關(guān)文章
Android DrawerLayout帶有側(cè)滑功能的布局類(2)
這篇文章主要為大家詳細(xì)介紹了Android DrawerLayout帶有側(cè)滑功能的布局類,感興趣的小伙伴們可以參考一下2016-07-07Android基于AudioManager、PhoneStateListener實現(xiàn)設(shè)置黑名單功能
這篇文章主要介紹了Android基于AudioManager、PhoneStateListener實現(xiàn)設(shè)置黑名單功能的方法,涉及Android操作手機通信錄及通話模式與手機狀態(tài)的相關(guān)技巧,需要的朋友可以參考下2016-01-01Android8.0適配前臺定位服務(wù)service的示例代碼
這篇文章主要介紹了Android8.0適配前臺定位服務(wù)service的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07Flutter打包apk報錯Your?app?isn't?using?AndroidX解決
這篇文章主要為大家介紹了Flutter打包apk報錯Your?app?isn't?using?AndroidX解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08Android入門之ListView應(yīng)用解析(一)
這篇文章主要介紹了Android入門之ListView應(yīng)用,簡單說明了ListView的實現(xiàn),需要的朋友可以參考下2014-08-08