Android:动态更改动画列表

xuo3flqw  于 2023-05-12  发布在  Android
关注(0)|答案(2)|浏览(114)

我有一个带有4帧的animation.xml。

<?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/male01a" android:duration="4000" />
    <item android:drawable="@drawable/male01b" android:duration="1100" />
    <item android:drawable="@drawable/male01c" android:duration="1100" />
    <item android:drawable="@drawable/male01d" android:duration="300" />
</animation-list>

有没有什么方法可以在这里为每个可绘制对象使用某种变量?很像在Strings.xml中使用“@string/animation 1”,其中animation 1指向“@drawable/male 01 a”。但是我需要一些方法来改变代码中的可绘制对象,比如male 02 a。

n3ipq98p

n3ipq98p1#

可以使用addFrame()方法动态地向动画添加帧。
示例:

ImageView imview = (ImageView) findViewById(R.id.ivImage);
AnimationDrawable ad = (AnimationDrawable) imview.getDrawable();
Drawable frame = Drawable.createFromPath("your image path");
ad.addFrame(frame, 200);
fzsnzjdm

fzsnzjdm2#

我不太明白你的目的:
您可以通过编程将特定项目的可绘制内容(图像)更改为listView。您需要创建自己的xml文件来描述这些项目。
示例“list_item.xml”:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <ImageView
        android:id="@+id/icon"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:contentDescription="@string/image"
        android:paddingLeft="10dp"
        android:paddingRight="10dp" />

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/icon"
        android:paddingBottom="10dp"
        android:textColor="#CC0033"
        android:textSize="16dp" />

    <TextView
        android:id="@+id/desc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/title"
        android:layout_toRightOf="@+id/icon"
        android:paddingLeft="10dp"
        android:textColor="#3399FF"
        android:textSize="14dp" />
</RelativeLayout>

如果你想为整个listView制作一个动画,我建议你试试这个库:ListViewAnimations

相关问题