2 zxd 72 zxd_72 于 2013.09.25 16:35 提问

如何改变 android 代码的 buffered image 和 graphics?

我用下面的 Java 代码创建了 BufferedImage 和 Graphics,如何把下面的 Java 代码改成Android 的?

public static BufferedImage buff(BufferedImage bi){
    if (isGray(bi)){
        return bi;
    }
    BufferedImage gray = new BufferedImage(bi.getWidth(), bi.getHeight(), 10);
    Graphics gr = gray.getGraphics();
    gr.drawImage(bi, 0, 0, null);
    gr.dispose();
    return gray;
}

1个回答

longhai326
longhai326   2013.09.25 18:40
已采纳

不知道你为什么传进去的是BufferedImage,返回值也是BufferedImage。
Android 中图片类用Bitmap,网上搜索Bitmap用法,或查看Api
public static Bitmap readBitmap(Context context, int resId) {
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.RGB_565;
opt.inPurgeable = true;
opt.inInputShareable = true;
// 获取资源图片
InputStream is = context.getResources().openRawResource(resId);
return BitmapFactory.decodeStream(is, null, opt);
}

public static Drawable getImageFromAssetsFile(Context context,
        String fileName) {
    Drawable image = null;
    BitmapFactory.Options opt = new BitmapFactory.Options();
    opt.inPreferredConfig = Bitmap.Config.RGB_565;
    opt.inPurgeable = true;
    opt.inInputShareable = true;
    AssetManager am = context.getResources().getAssets();
    try {
        InputStream is = am.open(fileName);
        Bitmap bmp = BitmapFactory.decodeStream(is, null, opt);
        image = new BitmapDrawable(bmp);
        is.close();
        bmp = null;
    } catch (IOException e) {
        e.printStackTrace();
    }
    return image;
}

也可以和Drawable互相转换

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!