0

我有一個列表視圖,其中包含一個圖標,一個標題和一個字幕。如何在進行自定義動畫時調整可繪製項目(圖像)的進度條?

我的老闆問我他想把這個圖標改成動畫。當他指的是動畫時,它只是顯示三個圖像繼續,使它看起來像動畫。

<?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"?> 
<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佈局:

<?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); 

動畫工作正常。我現在面臨的唯一問題是我爲動畫放置的圖像無法調整到正確的大小。它只能顯示它的一部分。我想知道是否有辦法讓我定義要顯示的圖像的大小,以便它可以像圖像視圖一樣好。

謝謝!

回答

0

這可以通過各種技術解決,具體取決於目標平臺。如果您的目標是API 11或更高版本,則ViewFlipper可以執行動畫。

但是,當您正在嘗試ProgressBar解決方案的動畫時,我想你也會瞄準舊版Android。在這些情況下,可以通過恢復到ImageView並從計時器設置圖像的可繪製來解決問題。

該技術描述在https://stackoverflow.com/a/14991972/1950496並且可以修改以適應RemoteViews問題。

相關問題