zoukankan      html  css  js  c++  java
  • android resources使用总结

     http://developer.android.com/guide/topics/resources/more-resources.html

    http://developer.android.com/guide/topics/resources/drawable-resource.html#LayerList

     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:主要用于设置颜色值

    <resources>

      res/values/colors.xml

        <color name="transparent">#00000000</color>
        <color name="pink">#ffff88ff</color>

        <drawable name="transparent_background">#00000000</drawable>//

    res/values/filename.xml
    <bool
    name="screen_small">true</bool>//boolean值
    <boolname="adjust_view_bounds">true</bool>

    res/values/
    filename.xml
    <itemtype="id"name="id_name"/>
    
    

    </resources>

    代码设置color方法:

    testview.setTextColor(Color.parseColor("FFFFFF")); 

    testview.setTextColor(Color.GRAY);

    tv.setTextColor(Color.rgb(255255255)); 

    testview.setTextColor(getContext().getResources().getColor(R.color.my_color));

    Resources res =getResources();boolean screenIsSmall = res.getBoolean(R.bool.screen_small);

    Resources res =getResources();int color = res.getColor(R.color.opaque_red);

    Resources res =getResources();float fontSize = res.getDimension(R.dimen.font_size);

    xml使用:

    android:background="@color/transparent"

    android:adjustViewBounds="@bool/adjust_view_bounds"

    android:textSize="@dimen/font_size"

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

     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"/>
    --------------------------------
  • 相关阅读:
    搭建VirtoCommerce2.6开发环境,同官方dev分支保持同步(上)
    VirtoCommerce中文博客站,2015年11月18日上线了!
    C#编程连接数据库,通过更改配置文件切换数据库功能。
    浅谈dataGridView使用,以及画面布局使用属性,对datagridview进行增删改查操作,以及委托使用技巧
    将listBox中信息显示在dataGridview中,操作datagridview后删除listBox信息和SQL数据库信息 续(浅谈listBox..)
    for语句嵌套使用 实现9*9乘法表
    浅谈ListBox控件,将对象封装在listBox中,在ListBox中显示对象中某个属性,在ListBox中移除和移动信息
    使用SignalR为FineUI/Webform打造消息总线
    封装一个错误重试类
    封装一个锁处理类
  • 原文地址:https://www.cnblogs.com/navy-wang/p/3314034.html
Copyright © 2011-2022 走看看