Как убрать размытие при отображении bitmap-объекта?
Создал пустую биткарту 20 на 20 пикселей, после чего отрисовал каждый пиксель по отдельности с помощью циклов.
После отображения биткарты в ImageView
изображение оказалось размытым, как это исправить?
Тут я создаю биткарту:
public class Render { // рендеринг карты
private Bitmap bit; // создание биткарты
private final ImageView map; // создание карты
private final int width;
private final int height;
public Render(Context context, ImageView m, int w, int h) {
width = w;
height = h;
map = m;
}
public void setup() { // настройка карты
bit = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); // создание пустой битмапы
}
public void generate(int x, int y, int color /* координаты пикселя и цвет */ ) { // первая прорисовка карты
bit.setPixel(x, y, color);
}
public void finish() {
map.setImageBitmap(bit); // установка биткарты поверх карты
}
}
Тут я прорисовываю карту попиксельно:
public class Setup {
public final int width;
public final int height;
private final ImageView map;
public Setup(int w, int h, ImageView m) {
width = w;
height = h;
map = m;
}
public void build() {
Generator generator = new Generator();
Render render = new Render(MainActivity.Context(), map, width, height);
render.setup();
for (int x = width - 1; x >= 0; x--) {
for (int y = height - 1; y >= 0; y--) {
Tile type = generator.generate();
int color = 0;
switch (type) {
case EMPTY: color = Color.rgb(100, 100, 100); break;
case TREE: color = Color.rgb(150, 255, 150); break;
case STONE: color = Color.rgb(200, 200, 200); break;
case GRASS: color = Color.rgb(0, 200, 0); break;
case BUSH: color = Color.rgb(80, 180, 0); break;
}
render.generate(x, y, color);
}
}
render.finish();
}
}
Скриншот эмулятора:
Источник: Stack Overflow на русском