


Detaillierte Erläuterung des in Android-XML-Dateien verwendeten Beispielcodes
Detaillierte Erläuterung des in Android-XML-Dateien verwendeten Beispielcodes
1. Layoutdatei: Im Layoutverzeichnis wird es häufig verwendet.
Wir können es definieren Zwei Sätze für die Anwendung Oder mehrere Sätze von Layouts, zum Beispiel: Sie können neue Verzeichnisse erstellen: „Layout_land“ (darstellt das horizontale Bildschirmlayout von Mobiltelefonen) und „layout_port“ (darstellt das vertikale Bildschirmlayout von Mobiltelefonen). Das System findet automatisch die meisten geeignete Layoutdatei für unterschiedliche Situationen, aber zwei unterschiedliche Layoutsätze auf derselben Schnittstelle. Die Dateinamen der Dateien sollten gleich sein, nur in zwei verschiedenen Verzeichnissen abgelegt.
2. Bilddateien: Im Drawable-Verzeichnis ist es ab Version 2.1 in drei Verzeichnisse unterteilt.
Drawable-hdpi speichert hochauflösende Bilder, z. B. WVGA (480×800). , FWVGA (480×854)
drawable-mdpi speichert Bilder mittlerer Auflösung, wie HVGA (320×480)
drawable-ldpi speichert Bilder niedriger Auflösung, wie QVGA (240). ×320)
Das System geht zu diesen Ordnern, um die entsprechenden Bilder entsprechend der Auflösung des Geräts zu finden.
Um bei der Entwicklung von Programmen mit verschiedenen Plattformen und Bildschirmen kompatibel zu sein, wird empfohlen, je nach Bedarf unterschiedliche Versionen von Bildern in jedem Ordner zu speichern.
Wir können die vorbereiteten Bilder in diesem Verzeichnis ablegen oder die gewünschten Bilder über benutzerdefinierte XML-Dateien realisieren. Beispielsweise können wir „shape_1.xml“ definieren und im Zeichenverzeichnis mit dem folgenden Inhalt ablegen:
<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>
Wenn wir möchten, dass ein Steuerelement je nach Status unterschiedliche Bilder anzeigt, können wir es direkt im Programm steuern oder eine XML-Datei im Zeichenverzeichnis erstellen, um den gleichen Effekt zu erzielen. Beispiel: Wir können eine neue Datei im Zeichenverzeichnis „File button_back.xml“ erstellen.
<?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>
Die obige XML-Datei kann ein Steuerelement implementieren (angenommen, es handelt sich um eine Schaltfläche), den Fokus erhalten, die Schaltfläche drücken und die anzeigen Wirkung verschiedener Bilder unter normalen Bedingungen Sie müssen nur darauf verweisen, wenn Sie das Steuerelement definieren. Der Dateiname reicht aus, zum Beispiel:
<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文件-->
Aber was sollen wir tun, wenn es sich bei unserer Bedingung nicht um ein vorhandenes Ereignis handelt Geben Sie beispielsweise ImageView im System ein und zeigen Sie verschiedene Bilder basierend auf dem Wert einer Variablen var an? Sie können den folgenden Code in das Programm schreiben
if (条件1) { image.setBackground(R.id.xxx1); } else if (条件2) { image.setBackground(R.id.xxx2); } ...
Oder Sie können eine andere einfache Methode verwenden, um dieselbe Funktion zu erreichen und eine XML-Datei unter res/drawable mit dem folgenden Inhalt erstellen
<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>
Setzen Sie dann den Quellcode der Bildansicht auf die erstellte XML-Datei im Layout. Wenn Sie das Bild im Programm ändern, müssen Sie nur imageview.getDrawable().setLevel(50) verwenden.
Android wählt automatisch aus entsprechendes basierend auf dem Wert des Levelbildes. Das Mobiltelefon nutzt diese Methode, um bei der Anzeige der verbleibenden Akkukapazität unterschiedliche Bilder anzuzeigen.
3. Menüdatei: Im Menüverzeichnis müssen Sie ihn beim Schreiben von Code nur mit MenuInflater in der onCreateOptionsMenu-Methode laden. Das Format ist wie folgt:
<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>
4. Die Ressourcendatei befindet sich im Werteverzeichnis. Sie wird als Ressourcendatei bezeichnet, da alle XML-Dateien im Werteverzeichnis die Ressource als Stammverzeichnis haben Knoten,
1.strings.xml Die Datei, die Zeichenfolgen definiert, das Format ist wie folgt:
<resources> <string name="hello">Hello World!</string> <string name="app_name">我的应用程序</string> </resources>
2.colors.xml Die Datei, die Farben definiert, das Format ist wie folgt :
<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>
Eine Datei, die ein Array definiert. Das Format ist wie folgt:
<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>
Eine Datei, die einen Stil definiert . Es ist in zwei Verwendungszwecke unterteilt:
Stil: Wird im Layout als Einheit (Steuerelement) verwendet. Beispiel: Wir können einen Stil für TextView definieren, einschließlich der Schriftgröße und Farbe des Texts, und ihn dann für eine bestimmte Instanz von TextView verwenden.
Thema: Wird als Einheit in allen Aktivitäten in der Anwendung oder in einer bestimmten Aktivität in der Anwendung verwendet. Beispielsweise können wir ein Thema definieren, das eine Reihe von Farben für den Vorder- und Hintergrund des Fensterrahmens und des Bedienfelds sowie die textbaren Größen- und Farbattribute für das Menü definiert. Dieses Thema kann auf alle Aktivitäten in Ihrem Programm angewendet werden .
<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>
Ich persönlich denke, dass, egal ob es sich um ein Thema oder einen Stil handelt, der Anwendungsbereich unterschiedlich ist. Die Unterscheidung sollte auf dem xxxx von android:name="xxxx" basieren ist offensichtlich anders.
5.dimen.xml Datei, die Einheiten definiert. In Android gibt es die folgenden Maßeinheiten:
px (Pixel): die tatsächlichen Pixel des Bildschirms, die üblicherweise verwendete Auflösung ist 1024*. 768 Pixel bedeuten 1024 Pixel horizontal und 768 Pixel vertikal. Der Anzeigeeffekt ist auf verschiedenen Geräten gleich.
in (Zoll): Die physische Größe des Bildschirms, jeder Zoll entspricht 2,54 Zentimetern.
mm (Millimeter): Die physische Größe des Bildschirms.
pt (Punkt): Die physische Größe des Bildschirms. 1/72 Zoll.
dp/dip: Dichteunabhängiges Pixel, eine abstrakte Einheit basierend auf der Bildschirmdichte. Auf einem Monitor mit 160 Punkten pro Zoll ist 1dp = 1px. Allerdings ändert sich das Verhältnis von dp zu px mit der Änderung der Bildschirmdichte und verschiedene Geräte haben unterschiedliche Anzeigeeffekte.
sp: Pixel, die nichts mit der Skalierung zu tun haben, werden hauptsächlich zur Anzeige von Schriftarten verwendet, am besten für die Textgröße, als Größeneinheit im Zusammenhang mit Text.
<resources> <dimen name="one_pixel">1px</dimen> <dimen name="double_density">2dp</dimen> <dimen name="sixteen_sp">16sp</dimen> </resources>
6.attrs.xml Die Datei, die Attribute definiert, wird hauptsächlich in benutzerdefinierten Komponenten verwendet. Die spezifische Verwendung wird im Folgenden ausführlich beschrieben. Das Format lautet wie folgt:
<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配置文件,在我看来就是为了达到显示层和数据层的分离,提高了可维护性,也是我们的程序代码变得简洁。
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des in Android-XML-Dateien verwendeten Beispielcodes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



In den letzten Tagen hat Ice Universe immer wieder Details zum Galaxy S25 Ultra enthüllt, von dem allgemein angenommen wird, dass es das nächste Flaggschiff-Smartphone von Samsung ist. Der Leaker behauptete unter anderem, Samsung plane nur ein Kamera-Upgrade

OnLeaks hat sich nun mit Android Headlines zusammengetan, um einen ersten Blick auf das Galaxy S25 Ultra zu werfen, nur wenige Tage nach dem gescheiterten Versuch, mehr als 4.000 US-Dollar von seinen X-Followern (ehemals Twitter) zu generieren. Für den Kontext sind die unten eingebetteten Renderbilder h

Neben der Ankündigung zweier neuer Smartphones hat TCL auch ein neues Android-Tablet namens NXTPAPER 14 angekündigt, dessen riesige Bildschirmgröße eines seiner Verkaufsargumente ist. Das NXTPAPER 14 verfügt über Version 3.0 der matten LCD-Panels der Signaturmarke von TCL

Das Vivo Y300 Pro wurde gerade vollständig vorgestellt und ist eines der schlanksten Mittelklasse-Android-Telefone mit einem großen Akku. Genauer gesagt ist das Smartphone nur 7,69 mm dick, verfügt aber über einen 6.500 mAh starken Akku. Dies ist die gleiche Kapazität wie bei der kürzlich eingeführten Version

In den letzten Tagen hat Ice Universe immer wieder Details zum Galaxy S25 Ultra enthüllt, von dem allgemein angenommen wird, dass es das nächste Flaggschiff-Smartphone von Samsung ist. Der Leaker behauptete unter anderem, Samsung plane nur ein Kamera-Upgrade

Samsung hat noch keine Hinweise darauf gegeben, wann es seine Smartphone-Serie Fan Edition (FE) aktualisieren wird. Derzeit ist das Galaxy S23 FE nach wie vor die jüngste Ausgabe des Unternehmens und wurde Anfang Oktober 2023 vorgestellt

Das Redmi Note 14 Pro Plus ist nun offiziell als direkter Nachfolger des letztjährigen Redmi Note 13 Pro Plus (aktuell 375 $ bei Amazon) erhältlich. Wie erwartet steht das Redmi Note 14 Pro Plus neben dem Redmi Note 14 und dem Redmi Note 14 Pro an der Spitze der Redmi Note 14-Serie. Li

Die Schwestermarke von OnePlus, iQOO, hat einen Produktzyklus von 2023 bis 2024, der möglicherweise fast abgeschlossen ist. Dennoch hat die Marke erklärt, dass sie mit ihrer Z9-Serie noch nicht fertig sei. Seine letzte und möglicherweise hochwertigste Turbo+-Variante wurde gerade wie vorhergesagt angekündigt. T
