gpt4 book ai didi

android - 来自 Drawable 的 AndEngine 纹理

转载 作者:行者123 更新时间:2023-11-29 22:22:52 25 4
gpt4 key购买 nike

我是 AndEngine 的新手。

出于某种原因,我必须从 Drawable 变量创建一个 TextureRegion。

不知道有没有可能

但是我的代码不工作...

public class DrawableTextureSource implements ITextureSource {
private final int mWidth;
private final int mHeight;
private final Drawable mDrawable;
private final Context mContext;
public DrawableTextureSource(Context context, Drawable D) {
mContext = context;
mDrawable = D;
mWidth = D.getIntrinsicWidth();
mHeight = D.getIntrinsicHeight();
} // end DrawableTextureSource()
public DrawableTextureSource(Context context, Drawable D, int W, int H) {
mContext = context;
mDrawable = D;
mWidth = W;
mHeight = H;
} // end DrawableTextureSource()
public int getWidth() {
return mWidth;
} // end getWidth()
public int getHeight() {
return mHeight;
} // end getHeight()
public Bitmap onLoadBitmap(Config pBitmapConfig) {
Bitmap bitmap = Bitmap.createBitmap(1024, 1024, pBitmapConfig);
mDrawable.draw(new Canvas(bitmap));
return bitmap;
} // end onLoadBitmap()
public DrawableTextureSource clone() {
return new DrawableTextureSource(mContext, mDrawable, mWidth, mHeight);
} // end clone()
} // end class

最佳答案

我知道这不是解决此问题的最佳方法,但您可以将 Drawable 转换为 Bitmap,然后创建一个 TextureRegion 来自 Bitmap。下面是从 Bitmap 创建 TextureRegion 的代码:

public class BitmapTextureSource implements ITextureSource {

private Bitmap mBitmap = null;

public BitmapTextureSource(Bitmap bitmap) {
this.mBitmap = bitmap;
}

@Override
public int getWidth() {
return mBitmap.getWidth();
}

@Override
public int getHeight() {
return mBitmap.getHeight();
}

@Override
public Bitmap onLoadBitmap() {
return mBitmap.copy(mBitmap.getConfig(), false);
}

@Override
public BitmapTextureSource clone() {
return new BitmapTextureSource(mBitmap);
}

}

这是一个 link帮助您从 Drawable 制作一个 Bitmap

希望您能找到一种更简单的方法,但这也应该可以完成工作。祝你好运!

关于android - 来自 Drawable 的 AndEngine 纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6679925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com