0

这是我的代码

@DatabaseField
String image;      
Bitmap bitmapImage;

public void convertStringImageToBitmapImage() {
    if (image != null) {        
        bitmapImage = ImageHelper.CreateBitmapFromString(image);            
        image = "";
    }
}

我使用此方法将字符串 base64 转换为位图,并在每个使用 ormlite 的实体类中使用它。每次我想更改 ormlite 字段时,我都需要注释位图代码,因为 DatabaseConfigUtil 会在我取消注释它们之后为我出错。我可以将此代码放在抽象类中,但我不能在抽象类中图像 DataField,因为 ormlite 不适用于这种结构。

这个问题的最佳解决方案是什么?

4

2 回答 2

0

创建基类并使用 static 关键字编写您的方法。在项目的任何地方使用此方法。

通过使用类名,例如:Base.covertStringImageToBitmapImage(Bitmap bitmapImage,String image);

public class Base extends Activity {
    public void convertStringImageToBitmapImage(Bitmap bitmapImage, String image) {
        if (image != null) {
            bitmapImage = ImageHelper.CreateBitmapFromString(image);
            image = "";
        }
    }
}
于 2013-07-20T09:21:46.753 回答
0

不要使用抽象类。将您的代码放在 utils 类中,并使用以下方法从您的实体中静态调用此方法Utils.convertStringImageToBitmapImage(image)

    public class Utils {
        public static Bitmap convertStringImageToBitmapImage(String image) {
            if (image != null) {
                return ImageHelper.CreateBitmapFromString(image);
                // this is useless now
                // image = "";
            }
        }
    }

如果您可以在 ImageHelper 中编辑代码,则可以在CreateBitmapFromString方法中处理空参数场景并直接ImageHelper.CreateBitmapFromString(image)从您的实体调用。

于 2013-07-20T11:49:30.763 回答