最近碰到一个问题,应用界面中的进度条有极低的概率会卡主不动,感觉可能跟内存有关,但概率实在太低,不好确认具体原因,于是就想着用简单控件ImageView来实现这个进度条。
实现代码:
layout:
<ImageView
android:id="@+id/tuning_progress"
android:layout_width="410dp"
android:layout_height="6dp"
android:layout_marginTop="13dp"
android:layout_marginBottom="20dp"
android:background="@drawable/progress_bg"
android:focusable="false"
android:scaleType="fitStart" />
设置进度:
private void changeProgress(int progress) {
if (tuningProgress != null) {
GradientDrawable drawable = (GradientDrawable) getResources()
.getDrawable(R.drawable.progress_rate);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) ivProgress
.getLayoutParams();
drawable.setSize(params.width * progress / 100, params.height);
ivProgress.setImageDrawable(drawable);
}
}
主要就是利用ImageView可以同时设置背景与图片的特性,来改变图片的长度,然后设置进去
效果图:
效果跟Seekbar差不多。
总结:
总的来说并没有解决问题,只是换了一种做法来掩盖了。