1. Selector
Selector in Android wird hauptsächlich zum Ändern des Standardhintergrunds von ListView- und Button-Steuerelementen verwendet.
1. Erstellen Sie die Datei „mylist_view.xml“
Erstellen Sie zunächst einen neuen Zeichenordner im res-Verzeichnis und dann eine neue Datei „mylist_view.xml“. Neuer Zeichenordner, seine Verzeichnisstruktur ist: res/drawable/mylist_view.xml.
2. Bearbeiten Sie die Datei mylist_view.xml entsprechend den spezifischen Anforderungen
Nachdem Sie eine neue Datei mylist_view.xml erstellt haben, lautet ihre interne Codestruktur:
<?xml version="1.0" encoding="utf-8" ?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> </selector>
Sie können den gewünschten Stil intern entsprechend den Projektanforderungen definieren. Die Hauptattribute sind wie folgt:
<?xml version="1.0" encoding="utf-8" ?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 默认时的背景图片--> <item android:drawable="@drawable/pic1" /> <!-- 没有焦点时的背景图片 --> <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>
3. Zitieren Sie die Datei mylist_view.xml
Es gibt drei Möglichkeiten, auf die Datei zu verweisen, die Sie gerade erstellt haben:
(1) Fügen Sie den folgenden Attributcode zur ListView hinzu
android:listSelector="@drawable/mylist_view"
(2 ) Fügen Sie den folgenden Attributcode zur Elementschnittstelle von ListView hinzu
android:background="@drawable/mylist_view"
(3) Verwenden Sie JAVA-Code, um direkt zu schreiben
Drawable drawable = getResources().getDrawable(R .drawable.mylist_view);
listView.setSelector(drawable);
Um zu verhindern, dass die Liste auf die schwarze Liste gesetzt wird, müssen Sie den folgenden Attributcode zur ListView hinzufügen
android:cacheColorHint= „@android :color/transparent“
Attributeinführung:
android:state_selected selected
android:state_focused erhält den Fokus
android:state_pressed click
android:state_enabled legt fest, ob auf Ereignisse reagiert werden soll bezieht sich auf alle Ereignisse
2. Animationen in XML schreiben
Animationen können auch in XML-Dateien platziert werden, was die Wartbarkeit verbessert des Programms. Die Schritte zum Schreiben von Animationen in XML sind wie folgt:
1. Erstellen Sie einen neuen Ordner mit dem Namen „anim“ im Ordner „res“
2. Erstellen Sie eine XML-Datei, fügen Sie zunächst das Set-Tag hinzu und ändern Sie das Tag wie folgt
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> </set>
3. Fügen Sie dem Tag Rotations-, Alpha-, Skalierungs- oder Übersetzungs-Tags hinzu
4. Verwenden Sie AnimationUtils, um die XML-Datei in den Code zu laden und zu generieren Animationsobjekt
Alpha-Animation
<?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="2000" /> </set> Animation a=AnimationUtils.loadAnimation(this, R.anim.alpha); iv.startAnimation(a);
Skalierungsanimation
<?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="2000" /> </set>
Animation drehen
<?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="400" android:pivotX="50%" android:pivotY="50%" android:duration="3000" /> </set>
Animation übersetzen
<?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="50%" android:toXDelta="100%" android:fromYDelta="50%" android:toYDelta="100%" android:duration="3000" /> </set>
Hier konzentrieren wir uns auf Android:pivotX und Android :pivotY und android :fromXDelta,android:toXDelta
android:pivotX="50"Absolute Koordinaten verwenden
android:pivotX="50%"relativ zu sich selbst
android:pivotX="50%p"relativ zur Kindersicherung
Wie heißen diese Animationen?
heißt in style.xml:
<?xml version="1.0" encoding="utf-8"?> <resources> <style mce_bogus="1" name="ThemeActivity"> <item name="android:windowAnimationStyle">@style/AnimationActivity</item> <item name="android:windowNoTitle">true</item> </style> <style name="AnimationActivity" parent="@android:style/Animation.Activity" mce_bogus="1"> <item name="android:activityOpenEnterAnimation">@anim/translate</item> <item name="android:activityOpenExitAnimation">@anim/rotate</item> <item name="android:activityCloseEnterAnimation">@anim/close_enter</item> <item name="android:activityCloseExitAnimation">@anim/close_exit</item> </style> </resources>
注:在/res 目录下新建 anim 目录,上面的Translate.xml,Scale.xml都是在这个文件夹下新建的。
3> Interpolator -- 定义动画变化的速率
① AccelerateDecelerateInterpolator:
在动画开始和结束的地方速率改变比较慢,在中间的时候加速;
② AccelaerateInterPolotor:
在动画开始的地方速率改变比较慢,然后开始加速;
③ CycleInterpolator:
动画循环播放特定的次数,速率沿着正弦曲线
④ DecelerateInterpolator:
在动画结束的地方速率比较慢
⑤ LinearInterpolator:
动画以匀速运动
在xml文件中定义Interpolator
android:interpolator="@android:anim/accelerate_interpolator"
android:shareInterpolator="true"
这样所有的Animation共用一个Interpolator。
在代码中用代码设置如下
anim.setInterpolator(new AccelerateInterpolator());
在new一个AnimationSet中传入true则所有的Animation共用Interpolator。
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Beispielen zum Schreiben von Animationen in XML. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!