Explication détaillée de l'exemple de code utilisé dans les fichiers XML Android
1. Fichier de mise en page : Dans le répertoire de mise en page, il est largement utilisé
Nous pouvons définir ; deux ensembles pour l'application Ou plusieurs ensembles de mises en page, par exemple : vous pouvez créer de nouveaux répertoires layout_land (représentant la disposition horizontale de l'écran des téléphones mobiles), layout_port (représentant la disposition verticale de l'écran des téléphones mobiles). Le système trouvera automatiquement le plus. fichier de mise en page approprié selon différentes situations, mais deux ensembles de mises en page différents sur la même interface. Les noms de fichiers doivent être les mêmes, juste placés dans deux répertoires différents.
2. Fichiers image : Dans le répertoire drawable, il est divisé en trois répertoires à partir de la version 2.1
drawable-hdpi stocke les images haute résolution, telles que WVGA (480×800). , FWVGA (480 × 854)
drawable-mdpi stocke des images à moyenne résolution, telles que HVGA (320 × 480)
drawable-ldpi stocke des images à basse résolution, telles que QVGA (240 ×320)
Le système ira dans ces dossiers pour trouver les images correspondantes en fonction de la résolution de la machine.
Lors du développement d'un programme, afin d'être compatible avec différentes plateformes et différents écrans, il est recommandé que chaque dossier stocke différentes versions d'images selon les besoins.
Nous pouvons mettre les images préparées dans ce répertoire, ou réaliser les images souhaitées via des fichiers XML personnalisés. Par exemple, nous pouvons définir shape_1.xml et le mettre dans le répertoire dessinable, avec le contenu suivant :
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <!--android:shape="oval"表示所要绘制的图形是一个椭圆,默认是rectangle,长方形--> <gradient android:startColor="#0055ff88" android:centerColor="#0055ff00" android:centerY="0.75" android:endColor="#00320077" android:angle="270" /> <!--gradient 产生颜色渐变 android:angle 从哪个角度开始变 只有90的整数倍可以 --> <solid android:color="#ff4100ff"/> <!--solid表示图形是实心的,填充里面,#ff4100ff为填充颜色--> <stroke android:width="2dp" android:color="#ee31ff5e" android:dashWidth="3dp" android:dashGap="2dp" /> <!-- 描边 采用那样的方式将外形轮廓线画出来,width表示笔的粗细,dashWidth表示小横线的宽度,dashGap表示小横线之间的距离--> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp" /> <!--和CSS中的padding应该是一个道理--> <corners android:radius="6dp" /> <!--corners表示是有半径为5像素的圆角--> </shape>
<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="false"android:drawable="@drawable/xxx1" /> <item android:state_pressed="true" android:drawable="@drawable/xxx2" /> <item android:state_focused="true" android:drawable="@drawable/xxx3" /> <-- 这里还可以加N多效果和动作 只要你用的到 --> <item android:drawable="@drawable/xxx4" /> </selector>
<Button android:id="@+id/Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_add_x"> </Button> <!--android:background="@drawable/button_back"指向button_back.xml文件-->
if (条件1) { image.setBackground(R.id.xxx1); } else if (条件2) { image.setBackground(R.id.xxx2); } ...
<level-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:maxLevel="9" android:drawable="@drawable/battery_0" /> <item android:maxLevel="39" android:drawable="@drawable/battery_1" /> <item android:maxLevel="69" android:drawable="@drawable/battery_2" /> <item android:maxLevel="89" android:drawable="@drawable/battery_3" /> <item android:maxLevel="100" android:drawable="@drawable/battery_4" /> </level-list>
Android sélectionnera automatiquement le correspondant basé sur la valeur de l'image de niveau. Le téléphone mobile utilise cette méthode pour afficher différentes images lors de l'affichage de la charge restante de la batterie.
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/enabled_item" android:title="Enabled" android:icon="@drawable/stat_happy" /> <item android:id="@+id/disabled_item" android:title="Disabled" android:enabled="false" android:icon="@drawable/stat_sad" /> <item android:id="@+id/enabled_item_2" android:title="Enabled" android:icon="@drawable/stat_happy" /> <item android:id="@+id/disabled_item_2" android:title="Disabled" android:enabled="false" android:icon="@drawable/stat_sad" /> </menu>
<resources> <string name="hello">Hello World!</string> <string name="app_name">我的应用程序</string> </resources>
<resources> <!--定义图片颜色--> <drawable name="screen_background_black">#ff000000</drawable> <drawable name="translucent_background">#e0000000</drawable> <drawable name="transparent_background">#00000000</drawable> <!--定义文字颜色--> <color name="solid_red">#f00</color> <color name="solid_blue">#0000ff</color> <color name="solid_green">#f0f0</color> <color name="solid_yellow">#ffffff00</color> </resources>
<resources> <string-array name="planets"> <item>Mercury</item> <item>Venus</item> <item>Earth</item> <item>Mars</item> <item>Jupiter</item> <item>Saturn</item> <item>Uranus</item> <item>Neptune</item> <item>Pluto</item> </string-array> <integer-array name="numbers"> <item>100</item> <item>500</item> <item>800</item> </integer-array> </resources>
Thème : utilisé comme une unité dans toutes les activités de l'application ou dans une certaine activité de l'application. Par exemple, nous pouvons définir un thème, qui définit un ensemble de couleurs pour le premier plan et l'arrière-plan du cadre et du panneau de la fenêtre, et définit la taille du texte et les attributs de couleur pour le menu. Ce thème peut être appliqué à toutes les activités de votre programme. .
<resources> <!--Theme,可以用来定义activity的主题--> <style name="Theme.Transparent"> <item name="android:windowIsTranslucent">true</item> <item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item> <item name="android:windowBackground">@drawable/transparent_background</item> <item name="android:windowNoTitle">true</item> <item name="android:colorForeground">#fff</item> </style> <!--Style,可以用来定义某个View元素,这里是ImageView的样式--> <style name="ImageView120dpi"> <item name="android:src">@drawable/stylogo120dpi</item> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> </style> </resources>
<resources> <dimen name="one_pixel">1px</dimen> <dimen name="double_density">2dp</dimen> <dimen name="sixteen_sp">16sp</dimen> </resources>
<resources> <declare-styleable name="MyView"> <attr name="textColor" format="color" /> <attr name="textSize" format="dimension" /> </declare-styleable> </resources>
五、动画文件 在anim目录下,动画资源分为两种,
1.实现图片的translate、scale、rotate、alpha四种变化,还可以设置动画的播放特性,称为Tween动画。
<set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:interpolator="@android:anim/accelerate_interpolator" android:fromXDelta="0" android:toXDelta="200" android:fromYDelta="0" android:toYDelta="180" android:duration="2000" /> <scale android:interpolator="@android:anim/accelerate_interpolator" android:fromXScale="1.0" android:toXScale="2.0" android:fromYScale="1.0" android:toYScale="2.0" android:pivotX="150%" android:pivotY="150%" android:duration="2000" /> <alpha android:fromAlpha="1.0" android:toAlpha="1.0" android:duration="@android:integer/config_mediumAnimTime" /> <rotate ....各个属性></rotate> <Interpolator >可以使用其子类和属性定义动画的运行方式,先快后慢,先慢后快等</Interpolator> </set>
2.帧动画,逐帧播放设置的资源,称为Frame动画。
<animation-list xmlns:android=”http://schemas.android.com/apk/res/android” android:oneshot=”true”> <item android:drawable=”@drawable/rocket_thrust1″ android:duration=”200″ /> <item android:drawable=”@drawable/rocket_thrust2″ android:duration=”200″ /> <item android:drawable=”@drawable/rocket_thrust3″ android:duration=”200″ /> </animation-list>
六、raw目录下的文件,是直接复制到设备中的任意文件。它们无需编译,添加到你的应用程序编译产生的压缩文件中。一般为应用要用到的音频或视频文件等等
要使用这些资源,可以调用Resources.openRawResource(),参数是资源的ID,即R.raw.somefilename。
七、xml目录下的文件,是程序中需要使用的普通xml文件。在运行时可以通过调用Resources.getXML()读取。
八、assets目录下的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。
1. 先在Activity里面调用getAssets()来获取AssetManager引用。
2. 再用AssetManager的open(String fileName, int accessMode)方法则指定读取的文件以及访问模式就能得到输入流InputStream。
3. 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close()。
4.调用AssetManager.close()关闭AssetManager。
总结:其实android中定义如此多的XML配置文件,在我看来就是为了达到显示层和数据层的分离,提高了可维护性,也是我们的程序代码变得简洁。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!