我有一个4页的viewpager,每个viewpager页面都包含一个recylerview。 Recyclerview包含20-30个元素的列表,在每个元素中我都有一个imageView,其功能是下载文件并将其替换为画布位图,显示循环进度中的下载百分比
我正在下载文件并在画布的帮助下显示进度并更新imageview。 以下是代码
对于平板电脑,radiusDifference为7,移动屏幕为5。
private void circularImageBar(ImageView iv2, int progess, int radiusDifference) {
System.out.println("sowload percent-" + progess);
Bitmap b = null;
Canvas canvas = null;
Paint paint = null;
if (b == null) {
b = Bitmap.createBitmap(iv2.getWidth(), iv2.getHeight(), Bitmap.Config.ARGB_8888);
canvas = new Canvas(b);
paint = new Paint();
}
paint.setColor(Color.DKGRAY);
paint.setStrokeWidth(iv2.getWidth() / 10);
paint.setStyle(Paint.Style.STROKE);
paint.setAntiAlias(true);
canvas.drawCircle(iv2.getWidth() / 2, iv2.getHeight() / 2,
(iv2.getWidth() / 2) - radiusDifference, paint);
int tintColor = Color.parseColor("#F81004");
paint.setColor(tintColor);
paint.setStrokeWidth(iv2.getWidth() / 10);
paint.setAntiAlias(true);
final RectF oval = new RectF();
paint.setStyle(Paint.Style.STROKE);
oval.set(radiusDifference, radiusDifference, iv2.getWidth() - radiusDifference,
iv2.getHeight() - radiusDifference);
canvas.drawArc(oval, 270, ((progess * 360) / 100), false, paint);
iv2.setImageBitmap(b);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
iv2.setForegroundGravity(View.TEXT_ALIGNMENT_CENTER);
}
iv2.requestLayout();
}
}
下载正在运行,甚至创建了位图,但它没有反映在UI中。
答案 0 :(得分:0)
试试这个。我已经添加了一些改进,所以现在它应该工作,无论是ImageView的高度和高度。
<table>
<thead><tr>
<script>
for(var j=1; j<=10; j++)
{
document.write("<th><label>"+i+"</label></th>");
}
</script>
</tr>
</thead>
<tbody>
<script type="text/javascript">
for(var i =1; i<=10; i++)
{
document.write("<tr>");
for(var k=1; k<=10; k++)
{
document.write("<td></td>");
}
document.write("</tr>");
}
</script>
</tbody>
</table>