android资源文件XML

一、anim目录
1.逐帧动画

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">//循环执行
  <item android:drawable="@drawable/a_01" android:duration="50"/>
  <item android:drawable="@drawable/a_02" android:duration="50"/>
  <item android:drawable="@drawable/a_03" android:duration="50"/>
  <item android:drawable="@drawable/a_04" android:duration="50"/>
  <item android:drawable="@drawable/a_05" android:duration="50"/>
  <item android:drawable="@drawable/a_06" android:duration="50"/>
</animation-list>
  1. 补间动画
    旋转

     <?xml version="1.0" encoding="utf-8"?>
     <set xmlns:android="http://schemas.android.com/apk/res/android"
     android:interpolator="@android:anim/accelerate_interpolator">
     
       <rotate 
         android:fromDegrees="0" 
         android:toDegrees="+360" 
         android:pivotX="50%" 
         android:pivotY="50%" 
         android:duration="1000"/>
     </set>
    

平移

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
    <translate
      android:fromXDelta="0%"
      android:toXDelta="100%"
      android:fromYDelta="0%"
      android:toYDelta="100%"
      android:duration="2000"/>
</set>

缩放

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
    <scale
      android:fromXScale="1.0"
      android:toXScale="0.0"
      android:fromYScale="1.0"
      android:toYScale="0.0"
      android:pivotX="50%"
      android:pivotY="50%"
      android:duration="1000"/>
</set>

透明度

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
    <alpha
      android:fromAlpha="1.0"
      android:toAlpha="0.0"
      android:startOffset="500"
      android:duration="500"/>
</set>

二、drawable目录
主要使用shape标签和selector标签和layer-list标签
1.shape标签

     <?xml version="1.0" encoding="utf-8"?>  
      <shape xmlns:android="http://schemas.android.com/apk/res/android"      
      android:shape=["rectangle"|"oval"|"line"|"ring"] > 
     <!-- 圆角 -->     
     <corners          
            android:radius="integer"          
            android:topLeftRadius="integer"          
            android:topRightRadius="integer"          
            android:bottomLeftRadius="integer"          
            android:bottomRightRadius="integer" />  
      <!-- 渐变 -->      
      <gradient          
            android:angle="integer"          
            android:centerX="integer"          
            android:centerY="integer"          
            android:centerColor="integer"          
            android:endColor="color"          
            android:gradientRadius="integer"          
            android:startColor="color"          
            android:type=["linear"|"radial"|"sweep"]          
            android:useLevel=["true"|"false"] />      
      <padding          
            android:left="integer"          
            android:top="integer"          
            android:right="integer"          
            android:bottom="integer" />      
      <size          
            android:width="integer"          
            android:height="integer" />      
      <solid          
            android:color="color" />  
      <!-- 描边 -->   
      <stroke          
            android:width="integer"          
            android:color="color"          
            android:dashWidth="integer"          
            android:dashGap="integer" />  
</shape>

2.selector标签

     <?xml version="1.0" encoding="utf-8" ?>   
     <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- 默认时的背景图片-->  
    <item android:drawable="@drawable/a_01" />    
    <!-- 没有焦点时的背景图片 -->  
    <item android:state_window_focused="false"   
          android:drawable="@drawable/a_01" /> 
    <!-- 非触摸模式下获得焦点并单击时的背景图片 -->  
    <item android:state_focused="true" 
          android:state_pressed="true"   
          android:drawable="@drawable/a_02" /> 
    <!-- 触摸模式下单击时的背景图片-->  
    <item android:state_focused="false" 
          android:state_pressed="true"        
          android:drawable="@drawable/a_03" />  
    <!--选中时的图片背景-->  
    <item android:state_selected="true"   
          android:drawable="@drawable/a_04" />   
    <!--获得焦点时的图片背景-->  
    <item android:state_focused="true"  
          android:drawable="@drawable/a_05" />  
</selector>

3.layer-list
图层列表 图层重叠
双边线
在这里插入图片描述

   <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <!--底层使用蓝色填充色-->
        <item>
            <shape>
                <solid android:color="#02a0ef"/>
            </shape>
        </item>
    
        <!--上面一层距离底层的顶部1dp,距离底部1dp,类似marginTop,填充色为白色,这样就形成了一个带有蓝色顶部边线和底部边线的白色背景的图-->
        <item android:bottom="1dp"
              android:top="1dp">
            <shape>
                <solid android:color="#fff"/>
            </shape>
        </item>
    </layer-list>

阴影
在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?>
  <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!--底层的左边距离上层左边3dp, 底层的顶部,距离上层的顶部6dp,如果不做这个控制,底层和上层的左侧和上侧会重合在一     起-->
    <item android:left="3dp"
          android:top="6dp">
        <shape>
            <solid android:color="#b4b5b6"/>
        </shape>
    </item>

    <!--上层的右边距离底层的右边3dp, 上层的底部距离底层的底部6dp-->
    <item android:bottom="6dp"
          android:right="3dp">
        <shape>
            <solid android:color="#fff"/>
        </shape>
    </item>
</layer-list>

图片层叠
图片层叠的时候,有两种效果,一种是缩放后层叠,一种是不缩放的层叠。默认是缩放效果。

注意: A. 不缩放的时候,必须在 item 节点中使用 bitmap 节点,并给 bitmap 设置 gravity=center ;

B. 虽然在实现缩放效果的时候,可以直接使用 item 中的 drawable属性,但实现不缩放的效果时,如果还用drawable
属性,即便给item 设置了gravity =center ,在真机上的效果依旧是缩放的。(但模拟器是不缩放的)

在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?>
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
 <!--默认缩放-->
    <item>
        <bitmap
            android:src="@drawable/ic_launcher"/>
    </item>

    <item android:left="35dp"
          android:top="35dp">
        <bitmap
            android:src="@drawable/ic_launcher"/>
    </item>

    <item android:left="70dp"
          android:top="70dp">
        <bitmap
            android:src="@drawable/ic_launcher"/>
    </item>
</layer-list>

在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!--不缩放-->
    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/ic_launcher"/>
    </item>

    <item android:left="35dp"
          android:top="35dp">
        <bitmap android:gravity="center"
                android:src="@drawable/ic_launcher"/>
    </item>

    <item android:left="70dp"
          android:top="70dp">
        <bitmap android:gravity="center"
                android:src="@drawable/ic_launcher"/>
    </item>

</layer-list>

叠加旋转

旋转的时候,只需要给出 起始的角度( fromdegress )即可

在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <rotate android:fromDegrees="-10" android:pivotX="0"
                android:pivotY="0">
            <bitmap android:src="@drawable/decibel_blue_background"/>
        </rotate>
    </item>
    <item>
        <rotate android:fromDegrees="10" android:pivotX="0"
                android:pivotY="0">
            <bitmap android:src="@drawable/decibel_orange_background"/>
        </rotate>
    </item>
    <item>
        <rotate android:fromDegrees="30" android:pivotX="0"
                android:pivotY="0">
            <bitmap android:src="@drawable/decibel_red_background"/>
        </rotate>
    </item>


</layer-list>

选择器的效果
在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!--被选中时是4dp的底部边线-->
    <item android:state_checked="true">
        <layer-list>
            <item>
                <shape>
                    <solid android:color="#f00"/>
                </shape>
            </item>
            <item android:bottom="4dp">
                <shape>
                    <solid android:color="#fff"/>
                </shape>
            </item>
        </layer-list>
    </item>

    <!--未被选中的是2dp的底部边线-->
    <item>
        <layer-list>
            <item>
                <shape>
                    <solid android:color="#f00"/>
                </shape>
            </item>
            <item android:bottom="2dp">
                <shape>
                    <solid android:color="#fff"/>
                </shape>
            </item>
        </layer-list>
    </item>
</selector>

横向进度条 ProgressBar

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">  
  
    <item android:id="@android:id/background">  
        <shape>
            <corners android:radius="10dp" />
            <gradient  
                    android:startColor="@color/progress_b"
                    android:centerColor="@color/progress_b"
                    android:endColor="@color/progress_b"
            />
        </shape>  
    </item>  
  
    <item android:id="@android:id/secondaryProgress">  
        <clip>  
            <shape>  
                <gradient  
                        android:startColor="@android:color/transparent"  
                        android:centerColor="@android:color/transparent"  
                        android:endColor="@android:color/transparent"  
                />  
            </shape>  
        </clip>  
    </item>  
  
    <item android:id="@android:id/progress">  
        <clip>  
            <shape>
                <corners android:radius="10dp" />
                <gradient  
                    android:startColor="@color/progress_p"
                    android:centerColor="@color/progress_p"
                    android:endColor="@color/progress_p"/>
            </shape>

        </clip>
    </item>  
  
</layer-list>  


 <ProgressBar
            android:id="@+id/firstBar"
            style="?android:attr/progressBarStyleHorizontal"
            android:progressDrawable="@drawable/progress_bar_states3"
            android:layout_width="300dip"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="190dip"
            android:max="200"
            android:maxHeight="8dp"
            android:minHeight="8dp"
            android:progress="60"
            android:visibility="visible" />

圆形loading ProgressBar
方式1:(效果为补间动画一样)

 <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:indeterminate="true"
        android:indeterminateDrawable="@anim/loading" />


<?xml version="1.0" encoding="UTF-8"?>
<animation-list android:oneshot="false"
  xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:duration="60" android:drawable="@drawable/load_1" />
  <item android:duration="60" android:drawable="@drawable/load_3" />
  <item android:duration="60" android:drawable="@drawable/load_5" />
  <item android:duration="60" android:drawable="@drawable/load_7" />
  <item android:duration="60" android:drawable="@drawable/load_9" />
  <item android:duration="60" android:drawable="@drawable/load_11" />
  <item android:duration="60" android:drawable="@drawable/load_13" />
  <item android:duration="60" android:drawable="@drawable/load_15" />
</animation-list>

方式2:(效果为自定义图片让其不断的旋转)

 <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:indeterminate="true"
        android:indeterminateDrawable="@drawable/progressbar" />


<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <rotate
            android:drawable="@drawable/load"
            android:fromDegrees="0.0"
            android:pivotX="50.0%"
            android:pivotY="50.0%"
            android:toDegrees="360.0" />
     <span style="white-space:pre">	</span>    <!-- 其中360.0值越大,转的圈圈越快 -->
    </item>
</layer-list>

方式三:(效果为自定义颜色让其不断的旋转)

<ProgressBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:indeterminate="true"
    android:indeterminateDrawable="@drawable/progressbar2" />


<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toDegrees="360" >
    <shape
        android:innerRadiusRatio="3"
        android:shape="ring"
        android:thicknessRatio="8"
        android:useLevel="false" >
        <gradient
            android:centerColor="#FFFFFF"
            android:centerY="0.50"
            android:endColor="#1E90FF"
            android:startColor="#000000"
            android:type="sweep"
            android:useLevel="false" />
    </shap

三、layout目录
四、menu目录
menu目录主要用来存放菜单的样式,包括点击手机底部的菜单键和顶部actionbar中设置的菜单按钮时的弹出框的菜单项。

    <?xml version="1.0" encoding="utf-8"?>  
     <menu xmlns:android="http://schemas.android.com/apk/res/android">  
    <item android:id="@+id/connect"  
          android:orderInCategory="100"  
          android:showAsAction="never"  
          android:icon="@android:drawable/ic_menu_send"  
          android:title="连接" />  
    <item android:id="@+id/disconnect"  
          android:orderInCategory="100"  
          android:showAsAction="never"  
          android:icon="@android:drawable/ic_menu_close_clear_cancel"  
          android:title="断开" />  
    <item android:id="@+id/search"  
          android:orderInCategory="100"  
          android:showAsAction="never"  
          android:icon="@android:drawable/ic_menu_search"  
          android:title="发现" />  
    <item android:id="@+id/view"  
          android:orderInCategory="100"  
          android:showAsAction="never"  
          android:icon="@android:drawable/ic_menu_view"  
          android:title="查看" />  
    <item android:id="@+id/help"  
          android:orderInCategory="100"  
          android:showAsAction="never"  
          android:icon="@android:drawable/ic_menu_help"  
          android:title="帮助" /> 
    <item android:id="@+id/exit"  
          android:orderInCategory="100"  
          android:showAsAction="never"  
          android:icon="@android:drawable/ic_menu_revert"  
          android:title="退出" />  
</menu>  

在这里插入图片描述
五、values目录
1.arrays.xml
arrays.xml文件中用于放各种数组数据,比如字符串数组、整型数组等,数组中的数据可能是具体的值,也有可能是对资源数据的引用。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="select_items">
	    <item>one</item>
	    <item>two</item>
	    <item>three</item>
	    <item>four</item>
	</string-array>
</resources>
使用:
String[] items = getResources().getStringArray(R.array.select_items);

2.colors.xml

<?xml version="1.0" encoding="utf-8"?>  
<resources>  
     <color name="red">#ff00000</color>  
     <color name="black">#000000</color>
     <color name="white">#ffffff</color>  
</resources>

3.dimens.xml

 <resources>
    <!-- 控件的大小 -->
    <dimen name="title_width">200dp</dimen>
    <dimen name="title_height">50dp</dimen>
    
    <!-- 字体的大小 -->
    <dimen name="info_size">20sp</dimen>
    <dimen name="tip_size">16sp</dimen>
</resources>

4.ids.xml
ids.xml为应用的相关资源提供唯一的资源id。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item name="send" type="id"/>
    <item name="public" type="id"/>
</resources>

使用:
<TextView
        android:id="@id/send"
        android:layout_width="@dimen/title_width"
        android:layout_height="@dimen/title_height"
        android:textSize="@dimen/info_size"/>

5.strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">TestDemo</string>
    <string name="action_add">添加</string>
    <string name="action_del">删除</string>
    <string name="action_settings">设置</string>
    <string name="action_about">关于</string>
    <string name="action_suggest">建议反馈</string>
</resources>

6.styles.xml

Android的所有系统资源定义位置存放在 frameworks\base\core\res\ 路径下,编译时会形成apk文件,即

framework-res.apk,所有应用程序共享。

应用在<application />和<activity />则为theme,应用在<View />则为style
  ①、在AndroidManifest.xml文件中在<application/>或者<activity />节点设置android:theme属性.

  ②、直接在代码中调用方法setTheme()设置该Activity的主题,必须得在第一次调用setContentView()前设置,



dialog样式

<resources>
    <style name="dialog" parent="@android:style/Theme.Dialog">
    <item name="android:windowFrame">@null</item> //Dialog的windowFrame框为无
    <item name="android:windowIsFloating">true</item> //是否浮现在activity之上
    <item name="android:windowIsTranslucent">true</item> //是否半透明
    <item name="android:windowNoTitle">true</item> //是否显示title
    <item name="android:background">@android:color/transparent</item> //设置dialog的背景,(#00000000)
    <item name="android:windowBackground">@android:color/transparent</item> //显示区域背景是否透明,(#00000000)
    <item name="android:backgroundDimAmount">0.5</item> //控制灰度的值,当为1时,dialog以外的区域是黑色,系统的默认值是0.5
    <item name="android:backgroundDimEnabled">true</item> //dialog的背景是否昏暗 显示区域以外是否使用黑色半透明背景
    <item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item> //Dialog进出的显示动画
    <item name="android:windowCloseOnTouchOutside">false</item> //点击空白处不消失 dialog.setCanceledOnTouchOutside(false);
</style>
</resources>

<style name="Animation.Translucent">
    <item name="windowEnterAnimation">@anim/translucent_enter</item>
    <item name="windowExitAnimation">@anim/translucent_exit</item>
</style>

Activity样式
系统默认样式

android:theme=“Theme” //默认地Theme
android:theme=“Theme.Light” //背景为白色
android:theme=“Theme.Light.NoTitleBar” //白色背景并无标题栏
android:theme=“Theme.Light.NoTitleBar.Fullscreen” //白色背景,无标题栏,全屏
android:theme=“Theme.Black” //背景黑色

系统默认的Theme

    <style name="Theme">
    <!-- Window attributes -->
    <item name="windowBackground">@android:drawable/screen_background_dark</item>
    <item name="windowFrame">@null</item>
    <item name="windowNoTitle">false</item>
    <item name="windowFullscreen">false</item>
    <item name="windowIsFloating">false</item>
    <item name="windowTitleSize">25dip</item>
    <item name="windowTitleBackgroundStyle">@android:style/WindowTitleBackground</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Activity</item>
    <item name="android:windowSoftInputMode">stateUnspecified|adjustUnspecified</item>    
     </style>
     文件位于:frameworks\base\core\res\res\values\themes.xml



<style name="ThemeActivity" parent="@android:style/Theme">
     <item name="android:windowAnimationStyle">@style/AnimationActivity</item>
     <item name="android:windowNoTitle">true</item>
     <item name="android:windowFullscreen">true</item>
     <item name="android:windowContentOverlay">@null</item>
     <item name="android:windowIsTranslucent">true</item>
 </style>

<style name="AnimationActivity" parent="@android:style/Animation.Activity">
        <item name="android:activityOpenEnterAnimation">@anim/slideinright</item> 第一次创建新Activity是调用的动画
        <item name="android:activityCloseExitAnimation">@anim/slideoutright</item> 调用finish关闭该Activity是调用的动画
        <item name="android:activityOpenExitAnimation">@anim/slideoutleft</item>   activity还没有finish()下退出效果 
        <item name="android:activityCloseEnterAnimation">@anim/slideinleft</item>  上一个activity返回进入效果  
  </style>

猜你喜欢

转载自blog.csdn.net/xdy1120/article/details/88759600