android 中resources管理

主要存在于res/value文件夹中

定义:

dimen.xml:主要用于设置像素默认值

<resources>
 res/values/dimens.xml
<dimen name="sp_12">12sp</dimen>
<dimen name="sp_13">13sp</dimen>
 <dimen name="dip_40">40dip</dimen>
 <dimen name="dip_45">45dip</dimen>
</resources>

代码使用:

int width=getContext().getResources().getDimension(R.dimen.tab_width);

xml文件使用:

android:layout_width="@dimen/tab_width"

color.xml设置颜色

<?xml version="1.0" encoding="utf-8"?>
<resources>
     <item type="drawable" name="main_background">#FFE7E7E7</item>
    <item type="drawable" name="newslist_item_background">#FFE7E7E7</item>
    <item type="color" name="white">#FFFFFFFF</item>
    <item type="color" name="category_title_normal_background">#FFADB2AD</item>
    <item type="color" name="gold">#b89766</item>
    <item type="color" name="transparent">#000000</item>
    <item type="color" name="textcolor">#FFFFFF</item>
    <item type="color" name="bgcolor">#000000</item>
</resources>

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <color name="contents_text">#ff000000</color>
    <color name="encode_view">#ffffffff</color>
    <color name="possible_result_points">#c0ffff00</color>
    <color name="result_points">#c000ff00</color>
    <color name="result_text">#ffffffff</color>
    <color name="result_view">#b0000000</color>
    <color name="share_text">#ff000000</color>
    <color name="status_view">#50000000</color>
    <color name="status_text">#ffffffff</color>
    <color name="transparent">#00000000</color>
    <color name="viewfinder_frame">#ff000000</color>
    <color name="viewfinder_laser">#ffff0000</color>
    <color name="viewfinder_mask">#60000000</color>
    <color name="red">#ffff0000</color>
    <color name="blue">#ff3590c4</color>
    <color name="green">#7700ff00</color>
    <color name="yellow">#ffff7000</color>
    <color name="screen_background_white">#00ffffff</color>
    <color name="translucent_background">#00000000</color>
    <color name="white_background">#00ffffff</color>
    <color name="gray_background">#fff7f7f7</color>
    <color name="solid_red">#ffff0000</color>
    <color name="solid_while">#ff888888</color>
    <color name="solid_saffron">#ffff6414</color>
    <color name="solid_blue">#ff0000ff</color>
    <color name="solid_green">#ff00ff00</color>
    <color name="solid_yellow">#ffffff00</color>
    <color name="saffron">#ffffa649</color>
    <color name="titlebackgroundcolor">#fffe8625</color>
    <color name="listitem_divide">#ffd4d3d3</color>
    <color name="gray">#ff666664</color>
    <color name="deep_gray">#ff555555</color>
    <color name="light_gray">#ff757575</color>
    <color name="btn_focused_color_yellow">#fffdfdfd</color>
    <color name="btn_pressed_color_light">#fffdfdfd</color>
    <color name="btn_default_color_light">#ffff5f11</color>
    <color name="rounded_container_border">#ffb7babb</color>
    <color name="base_start_color_default">#ffffffff</color>
    <color name="base_end_color_default">#ffffffff</color>
    <color name="base_start_color_pressed">#ffff7a13</color>
    <color name="base_center_color_pressed">#ffff8c2f</color>
    <color name="base_end_color_pressed">#ffffa254</color>
    <color name="text_color_default">#ff000000</color>
    <color name="text_color_pressed">#ffffffff</color>
</resources>

调用color标签:android:background="@color/red" @color/是调用res/下的匹配的color标签 

也可以将color标签嵌入到selector的item标签中使用  

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="@color/red"/>
<item android:color="@color/green" />
</selector>

代码设置color方法:

testview.setTextColor(Color.parseColor("FFFFFF")); 
testview.setTextColor(Color.GRAY);
tv.setTextColor(Color.rgb(255, 255, 255)); 
testview.setTextColor(getContext().getResources().getColor(R.color.my_color));

array.xml

<resources>
    <declare-styleable name="DragSort">
        <attr name="collapsed_height" format="dimension" />
        <attr name="drag_scroll_start" format="float" />
        <attr name="max_drag_scroll_speed" format="float" />
        <attr name="float_background_color" format="color" />
        <attr name="remove_mode">
            <enum name="clickRemove" value="0" />
            <enum name="flingRemove" value="1" />
        </attr>
        <attr name="track_drag_sort" format="boolean" />
        <attr name="float_alpha" format="float" />
        <attr name="slide_shuffle_speed" format="float" />
        <attr name="remove_animation_duration" format="integer" />
        <attr name="drop_animation_duration" format="integer" />
        <attr name="drag_enabled" format="boolean" />
        <attr name="sort_enabled" format="boolean" />
        <attr name="remove_enabled" format="boolean" />
        <attr name="drag_start_mode">
            <enum name="onDown" value="0" />
            <enum name="onMove" value="1" />
            <enum name="onLongPress" value="2" />
        </attr>
        <attr name="drag_handle_id" format="integer" />
        <attr name="fling_handle_id" format="integer" />
        <attr name="click_remove_id" format="integer" />
        <attr name="use_default_controller" format="boolean" />
    </declare-styleable>
</resources>

代码使用:

 TypedArray array = getContext().obtainStyledAttributes(attrs, R.styleable.DragSort, 0, 0);
         mItemHeight = Math.max(1, array.getDimensionPixelSize(R.styleable.DragSortListView_collapsed_height, 1));
         mTrackDragSort = array.getBoolean( R.styleable.DragSortListView_track_drag_sort, false);

xml使用:

    <ListPreference
     android:title="@string/page_animation"
     android:defaultValue="@string/default_page_animation"
     android:entries="@array/page_animation_labels"
     android:entryValues="@array/page_animations"
     android:key="pageAnimation"
     />

strings.xml:主要设置文本

<resources>
 <string name="button_confirm">确定</string>     
 <string name="button_cancel">取消</string>   
 <string-array name="page_animations">
  <item>100</item>
  <item>0</item>
  <item>1</item>
  <item>2</item>
  <item>3</item>
 </string-array>
</resources>

代码使用:

testview.setText(getString(R.string.button_confirm));

xml使用:

android:text="@string/button_confirm"

风格style与主题theme区别:

1:style主要用于View,theme主要用于Activity以及Application

2、style主要用于设置View的属性,theme主要用设置Activity的样式如是:否全屏

3、style与theme都是以<style><item>文本</item></style>创建,只是item的内容不一样

style定义:

style.xml文件

<resources xmlns:android="http://schemas.android.com/apk/res/android">
 <style name="TitleStyle"> 
  <item name="android:textSize">18sp</item>
  <item name="android:textColor">#ec9237</item>
</style>
<style name="Title" parent="@style/TitleStyle"> (继承TitleStyle属性)
  <item name="android:textSize">5sp</item> 
</style> 
 </resources>

代码使用:

xml使用:

<EditText android:layout_height="wrap_content"
android:text="EditText"
style="@style/Title" 
android:layout_width="fill_parent" 
android:id="@+id/editText1" />

-----------------------------------------------

theme:

style.xml

1.<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="theme1">
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowFullscreen">?android:windowNoTitle</item> 
  </style> 
  <style name="theme2.a">
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowFullscreen">?android:windowNoTitle</item> 
  </style> 
</resources> 

代码使用:

注意:setTheme应该在setContentView之前调用。

setTeme(R.theme.theme1);/setTeme(R.style.theme1)
setContentView(R.layout.main);

xml使用主题:

<application
  android:icon="@drawable/icon" android:label="@string/app_name" 
  android:theme="@style/theme1">
  <activity
    android:name=".MessageShowActivity" android:label="@string/app_name" 
    android:windowSoftInputMode="adjustPan" android:screenOrientation="portrait"
    android:theme="@style/theme2">
  </activity>
</application> 
---------------------------------

android的selector是在drawable/xxx.xml中创建的:

selector:主要用设置view点击选中显示效果

<selector xmlns:android="http://schemas.android.com/apk/res/android"><item    android:color="hex_color"   android:state_pressed=["true" | "false"]  android:state_focused=["true" | "false"]  android:state_selected=["true" | "false"]  android:state_checkable=["true" | "false"]  android:state_checked=["true" | "false"]  android:state_enabled=["true" | "false"]  android:state_window_focused=["true" | "false"] /></selector>android:drawable 放一个drawable资源android:state_pressed 是否按下,如一个按钮触摸或者点击。android:state_focused 是否取得焦点,比如用户选择了一个文本框。android:state_hovered 光标是否悬停,通常与focused state相同,它是4.0的新特性android:state_selected 被选中,它与focus state并不完全一样,如一个list view 被选中的时候,它里面的各个子组件可能通过方向键,被选中了。android:state_checkable 组件是否能被check。如:RadioButton是可以被check的。android:state_checked 被checked了,如:一个RadioButton可以被check了。android:state_enabled 能够接受触摸或者点击事件android:state_activated 被激活(这个麻烦举个例子,不是特明白)android:state_window_focused 应用程序是否在前台,当有通知栏被拉下来或者一个对话框弹出的时候应用程序就不在前台了-------<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_window_focused="false" android:drawable="@drawable/pic1" /><!-- 没有焦点时的背景图片-->
  <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/pic2" /><!-- 非触摸模式下获得焦点并单击时的背景图片-->
  <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/pic3" /><!-- 触摸模式下单击时的背景图片-->
  <item android:state_selected="true" android:drawable="@drawable/pic4" /><!--选中时的图片背景-->
  <item android:state_focused="true" android:drawable="@drawable/pic5" /><!--获得焦点时的图片背景-->
 </selector>

在xml中使用示例:

res/color/button_text.xml

<?xml version="1.0" encoding="utf-8"?> <selectorxmlns:android="http://schemas.android.com/apk/res/android">      <item        android:state_pressed="true"          android:color="#ffff0000"/><!-- pressed -->     <item      android:state_focused="true"          android:color="#ff0000ff"/><!-- focused -->     <itemandroid:color="#ff000000"/><!-- default --> </selector>
<Button   android:layout_width="fill_parent"   android:layout_height="wrap_content"   android:text="@string/button_text"   android:textColor="@color/button_text"/>参考:http://www.cnblogs.com/navy-wang/p/3314034.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏非著名程序员

教你如何用 RecyclerView 做一个好用的轮播图

引子 一般情况下,我们手机 App 上轮播图一般都是几张图来回循环,最多也就10几张,一般都是在10张以内的轮播。所以我们一般可能都是自己写,还有可能用到了别人...

26350
来自专栏非著名程序员

AndroidTShare Weekly No.10

本周热点开源项目 SpinMenu 转动轮盘样式的Fragment切换效果,非常漂亮。 效果图如下: ? 作者:Hitomi 项目开源地址:https://gi...

218100
来自专栏Android-薛之涛

Android-ConstraintLayout详解(下)

我们接着上一篇说一说ConstraintLayout的其他属性,如果没看过上一篇:Android-ConstraintLayout详解 先罗列一下此次的会议内...

23430
来自专栏林德熙的博客

win10 UWP ListView

如果发现 UWP ListView 横向没有滚动条,可以使用 ScrollViewer 添加

10020
来自专栏向治洪

React Native组件之Button

不管在Android还是ios开发中,系统都有Button组件,而在早期的React Native中,系统是不提供Button组件的,一般会使用一个叫做reac...

250100
来自专栏Sorrower的专栏

界面无小事(九): 做个好看的伸缩头部

18120
来自专栏Android机动车

一个小彩蛋

今天要介绍的就是大神的 Scalpel,可以实现在手机上 3D 展示届满布局,而且用起来超级简单!

13530
来自专栏学海无涯

Android开发之DrawerLayout实现抽屉效果

谷歌官方推出了一种侧滑菜单的实现方式(抽屉效果),即 DrawerLayout,这个类是在Support Library里的,需要加上android-suppo...

1.8K60
来自专栏技术专栏

java thumbnailator 做图片处理

26110
来自专栏Windows Community

Windows 8.1 应用再出发 (WinJS) - 几种新增控件(2)

上篇我们介绍了Windows 8.1 和 WinJS 中新增控件中的 AppBarCommand、BackButton、Hub、ItemContainer,本篇...

33160

扫码关注云+社区

领取腾讯云代金券