我使用两种不同的方法绘制相同的圆形图标并获得不同的结果。一个是完美的圆形,另一个是前卫。
当我尝试在ImageView中显示图像时,我得到了这个结果
当我尝试使用位图解码显示时
Bitmap icon = getBitmap(getActivity(),R.drawable.ic_access_time_white_48dp);
RectF iconDest = new RectF((float) itemView.getRight() - width - 2 * (iconSize ), (float) itemView.getTop() + iconSize, (float) itemView.getRight() - width, (float) itemView.getBottom() - iconSize);
c.drawBitmap(icon, null, iconDest, p);
获取位图功能
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private static Bitmap getBitmap(VectorDrawable vectorDrawable) {
Bitmap bitmap = Bitmap.createBitmap(vectorDrawable.getIntrinsicWidth(),
vectorDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
vectorDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
vectorDrawable.draw(canvas);
return bitmap;
}
private static Bitmap getBitmap(Context context, int drawableId) {
Drawable drawable = ContextCompat.getDrawable(context, drawableId);
if (drawable instanceof BitmapDrawable) {
return ((BitmapDrawable) drawable).getBitmap();
} else if (drawable instanceof VectorDrawable) {
return getBitmap((VectorDrawable) drawable);
} else {
throw new IllegalArgumentException("unsupported drawable type");
}
}
所以如何使用第二种方法获得第一个选项中的圆形圆形图像。
非常感谢任何帮助。