關於資源
樣式style
樣式在res/values/styles.xml中定義,如:
1、佈局文件中存在多個具有相同風格的控件,比如說統一的Button文字,都是紅色大字體顯示,這時我們便可在styles.xml定義一種文本樣式,然後在各文本框處聲明它的style屬性。好處一個是減少了佈局文件的大小,另一個是方便以後統一修改風格。
用到的style 定義的佈局文件,如下:
<!-- 這裏自定義一個字體樣式 -->
<style name="textStyle" >
<item name="android:textColor" >@color/colorAccent</item>
<item name="android:textSize" >@dimen/btn_text_common_size</item>
</style>
這裏可以定義一個專門存放尺寸sp,dp都可以的 資源文件res/values/dimen.xml
2、主題風格中,新建的項目都會有一個style,包含name,parent屬性。代碼中設置主題可通過“setTheme(R.style.XXX)”完成,佈局中設置可在AndroidManifest.xml的activity節點下添加theme屬性,如“android:theme=”@style/XXX””
錯誤描述:java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
該錯誤主要原因是 : activity繼承了支持包中才有的Activity,如ActionBarActivity,AppCompatActivity等,導致主題之間沒有繼承關係
解決辦法:統一主題與activity的繼承關係;
關於屏幕適配
【TODO】這往下的沒寫完,是草稿,待更新;
這裏就要用到上面提到的dimens文件了。
爲什麼要適配
android設備屏幕多種多樣,需要考慮圖片和文件的間距及大小,爲了讓app可以在更多的設備上運行
概念:
- 所謂的屏幕尺寸(如,5寸屏)
指的是物理屏幕對角線尺寸,單位是英寸,不同的屏幕尺寸是可以採用相同的分辨率的,而它們之間的區別在與密度(density)不同; - 屏幕密度
屏幕密度與DPI這個概念緊密相連,DPI全拼是dots-per-inch,即每英寸的點數。也就是說,密度越大,每英寸內容納的點數就越多。
android.util包下有個DisplayMetrics類可以獲得密度相關的信息。
最重要的是densityDpi這個成員,它有如下幾個常用值:
DENSITY_LOW = 120
DENSITY_MEDIUM = 160 //默認值
DENSITY_TV = 213 //TV專用
DENSITY_HIGH = 240
DENSITY_XHIGH = 320
DENSITY_400 = 400
DENSITY_XXHIGH = 480
DENSITY_XXXHIGH = 640
android設備屏幕的參數包括分辨率如1280*800,