我有一个进度条,我使用RoundedBitmapDrawable传递drawable作为背景,但是如何才能使仅两个角落?如果我使用xml作为背景,我没有背景。
Bitmap src = BitmapFactory.decodeResource(getResources(), R.drawable.progressbar);
RoundedBitmapDrawable dr = RoundedBitmapDrawableFactory.create(getResources(), src);
dr.setCornerRadius(Math.max(src.getWidth(), src.getHeight()) / 2.0f);
答案 0 :(得分:0)
您可以尝试这样做:
android.support.v4.graphics.drawable.RoundedBitmapDrawable
和android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory
复制到您的项目中,使用不同的名称(不要忘记更改软件包名称并修复所有导入/等)public void draw(Canvas canvas)
方法调用(第264行),以编辑drawRoundRect
方法。 尝试调整Durza007's solution,这是最简单的,但它对我没有用。
我最终使用Mohammad Mahtabi's solution:将public static Path RoundedRect()
添加到我的CustomRoundedBitmapDrawable
课程中,并将drawRoundRect
替换为
Path path = RoundedRect(0, 0, mDstRect.width() , mDstRect.height(),
mCornerRadius, mCornerRadius, true, true, false, false);
canvas.drawPath(path, mPaint);
此处,true, true, false, false
表示左上角和右上角是圆角。明智的做法是在HalfRoundedBitmapDrawable
中配置这些参数以便稍后重用该类。
在4.4(KitKat)上测试自己,就像一个魅力。