Создать масштабируемую версию ImageView для рисования - PullRequest
0 голосов
/ 05 февраля 2019

Я хочу сгенерировать уменьшенную версию прорисовки из imageView и показать ее в виде маленького значка для диалога.Я использую этот код, но картинка сохраняет свой первоначальный размер

Drawable drw = image.getDrawable().mutate().getConstantState().newDrawable();
                    Drawable drwScal = new ScaleDrawable(drw, 0, 0.5f, 0.5f).getDrawable();
                    drwScal.setLevel(5000);
                    new MaterialDialog.Builder(context)
                            .title(String.format(getResources().getString(R.string.summary)))
                            .icon(drwScal)
                            .content(sommaire)
                            .forceStacking(true)
                            .show();

что не так?

1 Ответ

0 голосов
/ 05 февраля 2019

Вы можете взять содержимое ImageView в качестве растрового изображения и масштабировать само растровое изображение следующим образом:

BitmapDrawable drawable = (BitmapDrawable) image.getDrawable();
Bitmap bitmap = drawable.getBitmap();

private static Bitmap scaleBitmap(Bitmap bitmap, float scaleFactor) {
    final int sizeX = Math.round(bitmap.getWidth() * scaleFactor);
    final int sizeY = Math.round(bitmap.getHeight() * scaleFactor);
    return Bitmap.createScaledBitmap(bitmap, sizeX, sizeY, false);
}
...