Android基础篇(二)资源

来源:互联网 发布:s71200编程软件 中文 编辑:程序博客网 时间:2024/05/16 06:57

关于资源

样式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,

原创粉丝点击