2017-06-14 71 views
0

我使用的是默認的進度的Android的對話框(不確定)ProgressDialog具有自定義圖像

ProgressDialog diag = new ProgressDialog(this); 
diag.setIndeterminate(); 
diag.show(); 

但是我的客戶不喜歡這個形象,所以他與具有圖片(這應該旋轉一個PNG提供了我/旋轉)。

有沒有一種方法可以在ProgressDIalog中替換它,以便它可以旋轉我的圖像?或者我怎麼能做到這一點?

謝謝

回答

0

首先,創建一個可繪製的動畫(如./res/drawable/anim1.xml):

<?xml version="1.0" encoding="utf-8"?> 
<rotate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:drawable="@drawable/ic" 
    android:fromDegrees="0" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:toDegrees="360" /> 

然後ad d它作爲一個不確定的可繪製:

ProgressDialog diag = new ProgressDialog(this); 
    diag.setIndeterminate(true); 
    //here is the trick: 
    diag.setIndeterminateDrawable(getResources().getDrawable(R.drawable.anim1, null));  
    diag.show(); 

但是,這可能無法在較舊版本的Android上順利運行。

P.S.您可以通過增加度數(從360到360n,其中n> = 1)來加快動畫速度。如果圖像是上下對稱,則可以使用180),因爲如果設置此類動畫似乎不支持android:frameDurationandroid:frameCount喜歡這個。

+0

謝謝。我會試試看,但你爲什麼說它在以前的版本中不起作用 – Snake

+0

@Snake,它可能*在舊版本(pre-Lolipop)上不能正常工作。我沒有在Kitkat或更早的版本上測試它,所以我不能說它可以在那裏無縫地工作。 –

+0

哦,我明白了。你說它可能不適用於舊版本,因爲你沒有在那裏測試它,而不是因爲你認爲存在問題或者聽說有問題? – Snake

0

您是否嘗試過使用?

diag.setIcon(R.drawable.customImg);

0

您可以在progressDialog 使用的setContentView(圖)像 diag.setContentView(R.id.layout_with_image)

或創建的ImageView,並設置爲內容視圖

ImageView iv=new ImageView(getApplicationContext()); iv.setImageDrawable(R.drawable.your_image); diag.setContentView(iv);

+0

布,圖像靜態不旋轉它,對吧? – Snake

+0

您可以添加旋轉動畫,就像其他視圖 – Adithya