アイコン、タイトル、サブタイトルを含むリスト ビューがあります。
上司から、そのアイコンを何かアニメーションに変えたいと頼まれました。彼がアニメーションを意味するとき、それはちょうど 3 つの画像が連続して表示され、アニメーションのように見えます。
res/anim フォルダーに xml を書き込むことで、既にアニメーションを機能させています。
<?xml version="1.0" encoding="UTF-8"?>
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="150" android:drawable="@drawable/icon_anmi_1"/>
<item android:duration="150" android:drawable="@drawable/icon_anmi_2" />
<item android:duration="150" android:drawable="@drawable/icon_anmi_3" />
</animation-list>
そして、値フォルダーに別の進行状況バー スタイルを書き込むことによって:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<style name="animStyle" parent="@android:style/Widget.ProgressBar.Small">
<item name="android:indeterminateDrawable">@anim/icon_anim</item>
</style>
</resources>
アイコンはアニメーションを自動的に開始する必要があるため、プログレスバーを使用しています。それは何をしますか。また、私のリスト アダプターの 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="60dip"
android:padding="10dip"
>
<ProgressBar android:id="@+id/itemIcon" style="@style/animStyle"
android:layout_width="60px"
android:layout_height="60px"
android:layout_marginRight="10dip"
android:layout_alignParentLeft="true" />
<TextView
android:id="@+id/itemInfo"
android:layout_width="240dp"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/itemIcon"
android:gravity="center_vertical"
android:textSize="18sp"
android:textStyle="bold"
android:ellipsize="marquee" android:singleLine="true"/>
<TextView
android:id="@+id/subtitle"
android:layout_width="240dp"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/itemIcon"
android:gravity="center_vertical"
android:textSize="10sp"
android:ellipsize="marquee" android:singleLine="true" android:layout_below="@+id/itemInfo"/>
</RelativeLayout>
アダプターをリスト項目にバインドするときに、コードにも変更を加えます。
adapterForList= new SimpleAdapter(this, hashMapListForListView, R.layout.s_item, new String[]{"imageUri","title","subtitle"},new int[]{R.id.itemIcon,R.id.itemInfo,R.id.subtitle});
adapterForList.setViewBinder(new SimpleAdapter.ViewBinder() {
public boolean setViewValue(View view, Object data,
String textRepresentation) {
if (view.getId() == R.id.itemIcon) {
//Not need progress
//int value = Integer.parseInt(data.toString());
//((ProgressBar) view).setProgress(value);
return true;
}
return false;
}
});
lv.setAdapter(adapterForList);
アニメーションは正常に動作します。私が今直面している唯一の問題は、アニメーション用に配置した画像のサイズを正しいサイズに変更できないことです。一部しか表示できません。表示する画像のサイズを定義して、画像ビューと同じくらいうまく機能させる方法があるのだろうか。
ありがとうございました!