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

Popular posts from this blog

php - Permission denied. Laravel linux server -

google bigquery - Delta between query execution time and Java query call to finish -

python - Pandas two dataframes multiplication? -