3

我有一个 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>

无论如何我可以在这里为每个可绘制对象使用某种变量吗?很像使用“@string/animation1”,其中animation1 指向Strings.xml 中的“@drawable/male01a”。但是我需要一些方法来更改代码中的可绘制对象,比如male02a。

4

2 回答 2

1

您可以使用方法 addFrame() 为动画动态添加帧。

示例:

ImageView imview = (ImageView) findViewById(R.id.ivImage);
AnimationDrawable ad = (AnimationDrawable) imview.getDrawable();
Drawable frame = Drawable.createFromPath("your image path");
ad.addFrame(ad, 200);
于 2019-04-15T00:51:43.560 回答
0

我不确定你的目标:

您可以通过编程将特定项目的可绘制对象(图像)更改为 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

于 2013-09-05T20:29:32.913 回答