2013-02-23 70 views
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); 
} 

什么可能我是做错了什么?

回答

0

尝试:

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

或者:

Paint paint = new Paint(Paint.FILTER_BITMAP_FLAG); 
+0

,其实我做的图像显示效果较好,但仍表现出一定的像素化的曲线(较少,但它仍然显示)。这可能是一些设计问题(也许是我应该使用的Photoshop中的某种技术,或者如此..)或者是否有我应该激活的任何设置? – AnnaSpart 2013-02-24 15:39:17

+0

呃...是适合该设备的图像的分辨率?你使用hdpi,xhdpi可绘制文件夹吗? – Ixx 2013-02-24 19:02:11

+0

是的,我使用的是高分辨率设备的大分辨率,而我使用的是可绘制的文件夹 – AnnaSpart 2013-02-24 19:08:47