1
A
回答
1
一個解決辦法是設置不確定繪製的代碼。
// ProgressBar when parsing indeterminate drawable from XML sets rounded corners. progressBar.setIndeterminateDrawable(context.getResources().getDrawable(R.drawable.progressbar));
然後使用進度
<?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/progress_2b" android:duration="100" />
<item android:drawable="@drawable/progress_1b" android:duration="100" />
</animation-list>
正如你可以從上面的android:drawable
看到,有2個圖像。 progress_1b和progress_2b。
他們看起來像這樣。
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/progress_1"
android:tileMode="repeat" >
</bitmap>`
適用於moi。
0
最後我遵循了編碼方法。基本上爲每一幀生成一個平鋪的和剪裁的drawable。我相信最初的進度欄會做類似的事情。
(部分是爲了簡明扼要省略)
final ShapeDrawable shape = new ShapeDrawable(new RoundRectShape(6 /*px*/, null, null));
final AnimationDrawable background = (AnimationDrawable) getResources().getDrawable(R.drawable.progress_bar_indeterminate_animation_list);
final int N = background.getNumberOfFrames();
AnimationDrawable newBg = new AnimationDrawable();
newBg.setOneShot(background.isOneShot());
for (int i = 0; i < N; i++) {
final Bitmap tileBitmap = ((BitmapDrawable) background.getFrame(i)).getBitmap();
final BitmapShader bitmapShader = new BitmapShader(tileBitmap, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
shape.getPaint().setShader(bitmapShader);
final Drawable result = new ClipDrawable(shape, Gravity.LEFT, ClipDrawable.HORIZONTAL);
result.setLevel(10000);
newBg.addFrame(result, background.getDuration(i));
}
newBg.setLevel(10000);
progressBar.setIndeterminateDrawable(newBg);
progress_bar_indeterminate_animation_list
是:
<animation-list android:oneshot="false">
<item android:drawable="@drawable/install_progressbar_indeterminate1" android:duration="200" />
<item android:drawable="@drawable/install_progressbar_indeterminate2" android:duration="200" />
<item android:drawable="@drawable/install_progressbar_indeterminate3" android:duration="200" />
</animation-list>
整個代碼是在這裏:http://mikinw.blogspot.co.uk/2015/05/indeterminate-progressbar-with-rounded.html
相關問題
- 1. 帶圓角的進度條?
- 2. 帶起始圓的SVG進度條動畫
- 3. 帶有圓角的自定義Silverlight進度條控件
- 4. jQuery動畫圓形進度條
- 5. 在java腳本和CSS中構建半圓進度條帶圓角和陰影
- 6. Android - 圓角方形線條進度條
- 7. 帶角度的css動畫
- 8. 進度條不動畫
- 9. 帶滾動條的textarea上的圓角
- 10. 如何在Xamarin表單中製作帶圓角的進度條
- 11. 帶圓角的帆布矩形作爲進度條嗎?
- 12. 角2中的圓形進度條
- 13. 使用壁畫的圓形進度條
- 14. 帶指示器的圓形進度條
- 15. Flex 3:帶圓邊的進度條
- 16. 動畫進度條
- 17. Android進度條:無圖像動畫不確定
- 18. 不確定進度條?
- 19. 自定義角度圓形進度條SVG用戶界面
- 20. 圓周運動和角度
- 21. MD-圓進展不動畫
- 22. Android - 自定義SeekBar - 進度條上的圓角
- 23. jQuery的進度條寬度和數字動畫不光滑
- 24. 圓形進度條
- 25. 帶有* ngFor的角度動畫
- 26. 帶圓角和內部滾動條的DIV
- 27. 如何畫圓弧半徑和啓動和停止角度
- 28. ReactJS進度條動畫
- 29. 顯示進度條動畫
- 30. 流體進度條動畫
我目前還不能看到這個對子級具有圓形角。或者如果drawable具有圓角,比如何用平滑的方式平鋪。 –