如何用RGB_565创建位图?

时间:2012-02-29 13:05:36

标签: android bitmap

实际上我正在使用以下代码打开assets文件夹中的png文件:

public static Bitmap loadImage( String imageName ){
    if( imageName.charAt(0) == '/' ) {
        imageName = imageName.substring(1);
    }
    imageName = imageName + ".png";
    Bitmap image = BitmapFactory.decodeStream(getResourceAsStream(imageName));
    return image;
}
public static InputStream getResourceAsStream( String resourceName ) {
    if( resourceName.charAt(0) == '/' ) {
        resourceName = resourceName.substring(1);
    }

    InputStream is = null;
    try {
        is = context.getAssets().open( resourceName );
    } catch (IOException e) {e.printStackTrace();}
    return is;
}

此代码打开具有完整质量的位图,并且需要花费大量时间才能打开它。我将尝试使用RGB_565加速打开位图。

我应该如何更改我的代码以使用RGB_565打开位图?如您所见,我不知道图像的宽度和高度。

也欢迎任何加速打开位图的意外

由于

2 个答案:

答案 0 :(得分:7)

将BitmapFactory.Options添加到decodeStream()调用:

BitmapFactory.Options bitmapLoadingOptions = new BitmapFactory.Options();
bitmapLoadingOptions.inPreferredConfig = Bitmap.Config.RGB_565;
BitmapFactory.decodeStream(instream,null,bitmapLoadingOptions);

至于如何加快图片的加载速度?不知道你能做什么,除非可能缩小图像的大小。

答案 1 :(得分:0)

这段代码对我有用

    AssetManager assetManager = getAssets();
    InputStream istr = null;
    try {
        istr = assetManager.open(strName);
    } catch (IOException e) {
        e.printStackTrace();
    }

    BitmapFactory.Options bitmapLoadingOptions = new BitmapFactory.Options();
    bitmapLoadingOptions.inPreferredConfig = Bitmap.Config.RGB_565;
    Bitmap bitmap = BitmapFactory.decodeStream(istr,null,bitmapLoadingOptions);


    return bitmap;