从Bitmap factory解码时的Edgy Corners / Pixelated圆形图标Android的

时间:2017-07-21 17:44:52

标签: android bitmap android-bitmap

我使用两种不同的方法绘制相同的圆形图标并获得不同的结果。一个是完美的圆形,另一个是前卫

当我尝试在ImageView中显示图像时,我得到了这个结果

enter image description here

当我尝试使用位图解码显示时

enter image description here

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");
    }
}

所以如何使用第二种方法获得第一个选项中的圆形圆形图像。

非常感谢任何帮助。

0 个答案:

没有答案