0

キャンバスを使用して画像 .png を表示しようとしていますが、何らかの理由で機能させることができず、画像はアンチエイリアスされていません。これにより、曲線または対角線上ですべてがピクセル化されます。

これは私が使用しているコードです:

Pixmap button = g.newPixmap("button.png");


@Override
public Pixmap newPixmap(String fileName) {
  Config config = Config.ARGB_8888;

  Options options = new Options();
  options.inPreferredConfig = config;

  InputStream in = null;
  Bitmap bitmap = null;
  try {
    in = manager.open(fileName);
    bitmap = BitmapFactory.decodeStream(in, null, options);
    if (bitmap == null)
      throw new RuntimeException("Couldn't load bitmap from asset '" + fileName + "'");
  } catch (IOException e) {
    throw new RuntimeException("Couldn't load bitmap from asset '" + fileName + "'");
  } finally {
    if (in != null) {
      try {
        in.close();
      } catch (IOException e) {
      }
    }
  }

  return new Pixmap(bitmap);
}

g.drawPixmap(button);

@Override
public void drawPixmap(Pixmap pixmap) {
  srcRect = new Rect(0, 0, pixmap.getOriginalWidth(), pixmap.getOriginalHeight());
  dstRect = new Rect(pixmap.getX(), pixmap.getY(), pixmap.getX() + pixmap.getVirtualWidth(), pixmap.getY() + pixmap.getVirtualHeight());
  canvas.drawBitmap(pixmap.bitmap, srcRect, dstRect, paint); 
}   

私は何を間違っているのでしょうか?

4

1 に答える 1

0

試す:

paint.setAntiAlias(true);
paint.setFilterBitmap(true);
paint.setDither(true);

または:

Paint paint = new Paint(Paint.FILTER_BITMAP_FLAG);
于 2013-02-23T20:58:07.880 に答える