編輯:關於Android編程
android切換Theme主流三種方式來切換Theme,第一種是通過內置的style來切換,一般用於夜間模式/日間模式切換。第二種是通過apk來實現插件化,第三種是通過下載zip進行解壓到到相應的app文件下,應用講需要文件讀取到內存中。這篇是介紹第一種android切換Theme的方法。
首先當然是在values下面創建attrs文件,然後定義了一些attr。
然後再在styles文件定義兩個style。
然後就是在布局文件中使用attrs。
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
private Button mSwtichThemeBtn;
private boolean isNight;
private SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sp = PreferenceManager.getDefaultSharedPreferences(this);
setTheme((isNight = sp.getBoolean("isNight", false)) ? R.style.nightTheme : R.style.dayTheme);
setContentView(R.layout.activity_main);
mSwtichThemeBtn = (Button) this.findViewById(R.id.swtichThemeBtn);
mSwtichThemeBtn.setText(isNight?"切換日間模式":"切換夜間模式");
mSwtichThemeBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Editor edit = sp.edit();
edit.putBoolean("isNight", !isNight);
edit.commit();
recreateForTheme();
}
});
}
@SuppressLint("NewApi")
public void recreateForTheme(){
if(android.os.Build.VERSION.SDK_INT >= 11){
this.recreate();
}else{
this.finish();
startActivity(new Intent(MainActivity.this,MainActivity.class));
}
}

Android自定義圓形倒計時進度條
效果預覽源代碼傳送門:https://github.com/yanzhenjie/CircleTextProgressbar實現與原理這個文字圓形的進度條我們在很多APP
詳解如何在Android中實現懸浮Activity
通常來說,為一款已經優化過的手機APP開發平板的版本也不是很難。使用Fragment、decompose Entities等組件就可以又快又輕松地完成。但是,最近遇到一個
AIDL
官網地址詳解分析:http://developer.android.com/guide/components/aidl.html一)什麼是AIDL –》 應用
Android編程之SurfaceView實例詳解
本文實例講述了Android編程之SurfaceView用法。分享給大家供大家參考,具體如下:關於surfaceView相關知識:View和SurfaceView主要區別