android - Vectordrawable blurry bitmap on ImageView -
i created custom view extends imageview. when set vector drawable viewport smaller, noticing image blurry. if use imageview, seeing vector image sharp suppose be.
in custom view override "setimagedrawable", call super , bitmap drawable paint later in ondraw
.
here how converting bitmap
public bitmap getbitmapfromdrawable(drawable drawable) { bitmap bitmap = bitmap.createbitmap(drawable.getintrinsicwidth(), drawable.getintrinsicheight(), bitmap.config.argb_8888); canvas canvas = new canvas(bitmap); drawable.setbounds(0, 0, canvas.getwidth(), canvas.getheight()); drawable.draw(canvas); return bitmap; }
you need view width , height, not drawable, , use these drawable bounds. assume view dimension might change on time not 1 time task. store drawable in member field:
private drawable drawable; @override public void setimagedrawable(drawable drawable) { this.drawable = drawable; this.drawable.setbounds(0, 0, getmeasuredwidth(), getmeasuredheight()); // invalidate if needed } @override protected void onmeasure(int wms, int hms) { super.onmeasure(wms, hms); if (drawable != null) drawable.setbounds(0, 0, getmeasuredwidth(), getmeasuredheight()); }
then ondraw, draw drawable.
Comments
Post a Comment