Android中的XML文件的作用介绍

本文详细介绍了 Android 开发中常用的 XML 文件类型及其写法,包括数组定义、颜色设置、尺寸定义等,并提供了具体示例。此外,还介绍了如何利用 WindowManager 添加和移除 View,以及 RelativeLayout 的 addStatesFromChildren 属性的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


WindowManager 用法  添加View,然后移除View

WindowManager wm=(WindowManager)ChangeStatus.this.getSystemService(Context.WINDOW_SERVICE);

LayoutInflater inflater=LayoutInflater.from(ChangeStatus.this);

final View view=inflater.inflate(R.layout.infor_text, null);

WindowManager.LayoutParams mParams = new WindowManager.LayoutParams();

wm.addView(view,mParams);  //添加

view.findViewById(R.id.btn_infor).setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

wm.removeView(view);   //移除

}

});

当RelativeLayout 的addStatesFromChildren属性设置为true,点击RelativeLayout 上的任意控件,RelativeLayout 都呈现被点击的效果显示

例如:

<RelativeLayout android:gravity="center_vertical" android:id="@+id/phoinix_settings_notification"

    android:layout_alignParentTop="true" android:layout_width="fill_parent" android:addStatesFromChildren="true"

    android:layout_height="wrap_content" android:background="@xml/phoinix_settings_click_bottom_style">

   <TextView android:id="@+id/phoinix_settings_notificationLabel"

android:layout_width="wrap_content" android:layout_height="wrap_content"

android:text="@string/phoinix_settings_notificationLabel" style="@style/Label" />

    <ImageButton android:id="@+id/phoinix_settings_notificationImage"

android:layout_centerVertical="true"

android:layout_alignParentRight="true" android:layout_marginRight="2dp"

android:background="@xml/phoinix_profile_mainmenu_style" android:layout_width="wrap_content"

android:layout_height="wrap_content" />

   </RelativeLayout>

Android XML 各种类型文件写法:

Arrays.xml     定义数组

<resources>

<string-array name="proxy_types">

<item>HTTP</item>

<item>SOCKS4</item>

<item>SOCKS5</item>

</string-array>

</resources>

Colors.xml

<resources>

<color name="blue_sky">#A0C8FF</color>

<color name="vert_manu">#CCFF00</color>

<color name="black">#000000</color>

<color name="white">#FFFFFF</color>

<color name="red">#FF0000</color>

<color name="link_color">#FF0066CC</color>

<color name="simiple_button_color">#FFF</color>

<color name="blue">#0000FF</color>

<color name="grey">#FFCBD2D8</color>

</resources>

在res / values目录内的任何xml档,使用<dimen>做为大小尺寸标签.

Dimens.xml   定义尺寸值

<?xml version="1.0" encoding="utf-8"?>

<resources>

<dimen name="bottom_tab_font_size">12dp</dimen>

<dimen name="bottom_tab_padding_up">5dp</dimen>

<dimen name="bottom_tab_padding_drawable">8dp</dimen>

</resources>

Drawables.xml

<resources>

    <item type="drawable" name="shader1">#7f7f7f7f</item>

    <item type="drawable" name="highlight">#cf7f7f7f</item>

    <item type="drawable" name="barbg">#ef0a4267</item>

    <item type="drawable" name="trans">#00000000</item>

    <item type="drawable" name="chatdivider">#ffd6dadc</item>

</resources>

Strings.xml

<resources>

<!-- Generic terms -->

<string name="app_name">Beem</string>

<string name="OkButton">Ok</string>

<string name="ClearButton">Clear</string>

<string name="CancelButton">Cancel</string>

<string name="AcceptButton">Authorize</string>

<string name="RefuseButton">Deny</string>

</resources>

Styles.xml

<resources>

<style name="Label">

<item name="android:textSize">18sp</item>

<item name="android:textStyle">bold</item>

    <item name="android:typeface">sans</item> 

<!--  <item name="android:capitalize">characters</item>  -->

<item name="android:textColor">#000000</item> <!-- #FFFFFF -->

    <item name="android:focusable">false</item>  

<item name="android:padding">12dip</item>

</style>

</resources>

phoinix_popumenu_style.xml     selector选择

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_focused="true" android:state_pressed="true"

       android:drawable="@drawable/phoinix_pushmail_btn_selected" />

    <item android:state_focused="false" android:state_pressed="true"

       android:drawable="@drawable/phoinix_pushmail_btn_selected" />

    <item android:state_focused="true"

       android:drawable="@drawable/phoinix_small_selected"/>

</selector>

Menu

<menu xmlns:android="http://schemas.android.com/apk/res/android">

<group>

<item android:id="@+id/chat_menu_contacts_list" android:visible="true"

android:title="@string/chat_menu_contacts_list" android:icon="@drawable/ic_menu_friendslist" />

<item android:id="@+id/chat_menu_change_chat" android:visible="true"

android:title="@string/chat_menu_change_chat" android:icon="@drawable/ic_menu_chat_dashboard" />

</group>

<item android:id="@+id/chat_menu_close_chat" android:visible="true"

android:title="@string/chat_menu_close_chat" android:icon="@drawable/ic_menu_end_conversation" />

</menu>

<menu xmlns:android="http://schemas.android.com/apk/res/android">

<item android:id="@+id/contact_list_context_menu_chat_item"

android:title="@string/CDChat">

<menu>

</menu>

</item>

<item android:id="@+id/contact_list_context_menu_call_item"

android:title="@string/CDCall" android:visible="false" />

<item android:id="@+id/contact_list_context_menu_user_info"

android:title="@string/CDInfos">

<menu>

<item android:id="@+id/contact_list_context_menu_userinfo_alias"

android:title="@string/userinfo_label_alias" />

<item android:id="@+id/contact_list_context_menu_userinfo_group"

android:title="@string/userinfo_label_chg_group" />

<item android:id="@+id/contact_list_context_menu_userinfo_subscription"

android:title="@string/userinfo_label_re_subscription" />

<item android:id="@+id/contact_list_context_menu_userinfo_block"

android:title="@string/userinfo_label_block" android:visible="false" />

<item android:id="@+id/contact_list_context_menu_userinfo_delete"

android:title="@string/userinfo_label_delete" />

</menu>

</item>

</menu>

Drawable  white_background.xml   白色圆角矩形做背景

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 

    <solid android:color="#FFFFFF" /> 

    <corners android:topLeftRadius="5px" 

        android:topRightRadius="5px" android:bottomLeftRadius="5px" 

        android:bottomRightRadius="5px"/> 

   <!--   <padding android:left="10dp" android:top="10dp" android:right="10dp" 

        android:bottom="10dp" />  

          <stroke   

            android:dashWidth="2dp"   

            android:dashGap="2dp"  

            android:width="2dp"   

            android:color="#FF00ff00"></stroke>  --> 

   <!--  -->

</shape>

Anim  旋转动画

· <set xmlns:android="http://schemas.android.com/apk/res/android">  

·           

· <rotate   

·         android:interpolator="@android:anim/accelerate_decelerate_interpolator"  

·         android:fromDegrees="0"   

·         android:toDegrees="+360"  

·         android:duration="3000" />  

·           

· <!-- rotate 旋转动画效果  

·        属性:interpolator 指定一个动画的插入器,用来控制动画的速度变化  

·         fromDegrees 属性为动画起始时物件的角度      

·         toDegrees   属性为动画结束时物件旋转的角度,+代表顺时针  

·         duration  属性为动画持续时间,以毫秒为单位  

· -->  

· </set> 

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <rotate android:fromDegrees="0" android:toDegrees="360"

android:pivotX="50%" android:pivotY="50%"

android:duration="5000"

android:repeatMode="restart"

android:repeatCount="infinite" />

</set>

XML中 
alpha 
渐变透明度动画效果 
scale 
渐变尺寸伸缩动画效果 
translate 
画面转换位置移动动画效果 
rotate 
画面转移旋转动画效果 

<set xmlns:android="http://schemas.android.com/apk/res/android">   

    

     <!--    

         Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效   

            

         Alpha:渐变透明度动画效果   

         Scale:渐变尺寸伸缩动画效果   

         Translate:画面转换位置移动动画效果   

         Rotate:画面旋转动画效果   

            

         Tween Animation 通用属性[类型]    功能     

             Duration[long]  属性为动画持续时间   时间以毫秒为单位   

             fillAfter [boolean] 当设置为true ,该动画转化在动画结束后被应用   

             fillBefore[boolean] 当设置为true ,该动画转化在动画开始前被应用   

                

             interpolator    指定一个动画的插入器  有一些常见的插入器   

             accelerate_decelerate_interpolator   

             加速-减速 动画插入器   

             accelerate_interpolator   

             加速-动画插入器   

             decelerate_interpolator   

             减速- 动画插入器   

             其他的属于特定的动画效果   

             repeatCount[int]    动画的重复次数    

             RepeatMode[int] 定义重复的行为 1:重新开始  2:plays backward   

             startOffset[long]   动画之间的时间间隔,从上次动画停多少时间开始执行下个动画   

             zAdjustment[int]    定义动画的Z Order的改变 0:保持Z Order不变   

             1:保持在最上层   

             -1:保持在最下层 

      -->   

     <!--   

         透明控制动画    

      -->   

     <alpha   

         android:fromAlpha="0.1"    

         android:toAlpha="1.0"   

         android:duration="3000"   

     />   

            

     <!-- 尺寸伸缩动画效果 scale   

       

         属性:interpolator 指定一个动画的插入器   

    

         有三种动画插入器:   

          accelerate_decelerate_interpolator  加速-减速 动画插入器   

          accelerate_interpolator        加速-动画插入器   

          decelerate_interpolator        减速- 动画插入器   

    

         其他的属于特定的动画效果   

    

             fromXScale 属性为动画起始时 X坐标上的伸缩尺寸       

             toXScale   属性为动画结束时 X坐标上的伸缩尺寸        

    

             fromYScale 属性为动画起始时Y坐标上的伸缩尺寸       

             toYScale   属性为动画结束时Y坐标上的伸缩尺寸       

    

             说明:   

                  以上四种属性值       

                     0.0表示收缩到没有    

                     1.0表示正常无伸缩        

                     值小于1.0表示收缩     

                     值大于1.0表示放大   

                        

             pivotX     属性为动画相对于物件的X坐标的开始位置   

             pivotY     属性为动画相对于物件的Y坐标的开始位置   

             说明:   

                     以上两个属性值 从0%-100%中取值   

                     50%为物件的X或Y方向坐标上的中点位置   

         长整型值:   

             duration  属性为动画持续时间   

             说明:   时间以毫秒为单位   

    

         布尔型值:   

             fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用   

     -->   

     <scale 

         android:interpolator="@android:anim/accelerate_decelerate_interpolator"   

         android:repeatCount="1"   

            

         android:fromXScale="0.5"   

         android:fromYScale="0.5"   

         android:toXScale="1.4"         

         android:toYScale="1.4"   

         android:pivotX="50%"   

         android:pivotY="50%"   

         android:fillAfter="false"   

         android:duration="3000"   

            

     />   

     <!--    

         画面转换位置移动动画效果 translate   

        

         fromXDelta toXDelta 为动画、结束起始时 X坐标上的位置      

         fromYDelta toYDelta 为动画、结束起始时 Y坐标上的位置   

      -->   

  

     <translate   

         android:repeatCount="2"   

         android:fromXDelta="-30"   

         android:fromYDelta="-30"   

         android:toXDelta="-80"         

         android:toYDelta="200"   

         android:duration="3000"   

     />   

     <!--    

         画面转移旋转动画效果 rotate   

            

         fromDegrees 为动画起始时物件的角度 说明   

             当角度为负数——表示逆时针旋转   

             当角度为正数——表示顺时针旋转   

             (负数from——to正数:顺时针旋转)   

             (负数from——to负数:逆时针旋转)   

             (正数from——to正数:顺时针旋转)   

             (正数from——to负数:逆时针旋转)   

             toDegrees   属性为动画结束时物件旋转的角度 可以大于360度   

         pivotX   

         pivotY  为动画相对于物件的X、Y坐标的开始位  说明:以上两个属性值 从0%-100%中取值   

         50%为物件的X或Y方向坐标上的中点位置   

      -->   

     <rotate   

         android:interpolator="@android:anim/accelerate_interpolator"   

         android:repeatCount="2"   

         android:fromDegrees="0"   

         android:toDegrees="+270"   

         android:pivotX="50%"   

         android:pivotY="50%"   

         android:duration="3000"   

     />   

   

 </set>  

加入动画

 Animation mAnimation ;   

mAnimation = AnimationUtils.loadAnimation(this, R.anim.anim);   

 TextView text = (TextView)findViewById(R.id.textview00);   

 text.setAnimation(mAnimation);



转载地址:http://blog.youkuaiyun.com/chajbq99/article/details/6750204

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值