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