編輯:關於Android編程
設置壁紙的相關方法:
- setBitmap(Bitmap bitmap):將壁紙設置為bitmap所代表的位圖
- setResource(int resid):將壁紙設置為resid資源所代表的圖片
- setStream(InputStream data):將壁紙設置為data數據所代表的圖片其他方法:
- clear():清除壁紙,設置回系統默認的壁紙
- getDesiredMinimumHeight():最小壁紙高度
- getDesiredMinimumWidth():最小壁紙寬度
- getDrawable():獲得當前系統壁紙,如果沒有設置壁紙,則返回系統默認壁紙
- getWallpaperInfo():加入當前壁紙是動態壁紙,返回動態壁紙信息
- peekDrawable():獲得當前系統壁紙,如果沒設置壁紙的話返回null
…
WallpaperManager wpManager =WallpaperManager.getInstance(this);
Button btn_set = (Button) findViewById(R.id.btn_set);
btn_set.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent chooseIntent = new Intent(Intent.ACTION_SET_WALLPAPER);
startActivity(Intent.createChooser(chooseIntent, 選擇壁紙));
}
});
運行效果圖:
方法有兩種,一種是在Activity中用代碼進行設置,另一種是在AndroidManifest.xml中修改
Activity的主題~!
方法一:Activity中設置:
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(android.R.style.Theme_Wallpaper_NoTitleBar_Fullscreen);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
方法二:AndroidManifest.xml修改theme:
這裡用到前面學的AlarmManager(鬧鐘服務),假如你對它不了解的話可以到:
Android基礎入門教程——10.5 AlarmManager(鬧鐘服務)進行學習~
下面我們來寫個Demo~
運行效果圖:
代碼實現:
首先我們來寫一個定時換壁紙的Service:WallPaperService.java
/**
* Created by Jay on 2015/11/13 0013.
*/
public class WallPaperService extends Service {
private int current = 0; //當前壁紙下標
private int[] papers = new int[]{R.mipmap.gui_1,R.mipmap.gui_2,R.mipmap.gui_3,R.mipmap.gui_4};
private WallpaperManager wManager = null; //定義WallpaperManager服務
@Override
public void onCreate() {
super.onCreate();
wManager = WallpaperManager.getInstance(this);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if(current >= 4)current = 0;
try{
wManager.setResource(papers[current++]);
}catch(Exception e){e.printStackTrace();}
return START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
接著撸個簡單的布局,三個Button:activity_main.xml:
接著是我們的Activity,在這裡實例化aManager並設置定時事件~:MainActivity.java:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button btn_on;
private Button btn_off;
private Button btn_clean;
private AlarmManager aManager;
private PendingIntent pi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//①獲得AlarmManager對象:
aManager = (AlarmManager) getSystemService(ALARM_SERVICE);
//②指定要啟動的Service,並指明動作是Servce:
Intent intent = new Intent(MainActivity.this, WallPaperService.class);
pi = PendingIntent.getService(MainActivity.this, 0, intent, 0);
bindViews();
}
private void bindViews() {
btn_on = (Button) findViewById(R.id.btn_on);
btn_off = (Button) findViewById(R.id.btn_off);
btn_clean = (Button) findViewById(R.id.btn_clean);
btn_on.setOnClickListener(this);
btn_off.setOnClickListener(this);
btn_clean.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_on:
aManager.setRepeating(AlarmManager.RTC_WAKEUP, 0, 3000, pi);
btn_on.setEnabled(false);
btn_off.setEnabled(true);
Toast.makeText(MainActivity.this, 自動更換壁紙設置成功, Toast.LENGTH_SHORT).show();
break;
case R.id.btn_off:
btn_on.setEnabled(true);
btn_off.setEnabled(false);
aManager.cancel(pi);
break;
case R.id.btn_clean:
try {
WallpaperManager.getInstance(getApplicationContext()).clear();
Toast.makeText(MainActivity.this, 清除壁紙成功~, Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
}
break;
}
}
}
最後別忘了加上設置壁紙的權限以及為我們的Service進行注冊:AndroidManifest.xml:
使用Web Service進行網絡編程 Android應用通常都是運行在手機平台上,手機系統的硬件資源是有限的,不管是存儲能力還是計算能力都有限,在Android系統上開
如果不考慮更深層的性能問題,我個人認為ScrollerView還是很好用的。而且單用ScrollerView就可以實現分類型的RecyclerView或ListView所
Android——Android lint工具項目資源清理最近維護的項目已經有兩年多,經過很多前輩的迭代,項目並沒有變得健壯,而變得很臃腫.用Android lint工具
平時的一些Android學習視頻中,他們都是基於Android2.2的去使用ListView,我看到都是會在UI線程中去訪問網絡獲取數據,但是這在Android4.0之後