这是我的代码
@DatabaseField
String image;
Bitmap bitmapImage;
public void convertStringImageToBitmapImage() {
if (image != null) {
bitmapImage = ImageHelper.CreateBitmapFromString(image);
image = "";
}
}
我使用此方法从字符串base64转换为位图,并在每个使用ormlite的实体类中使用它。每次我想更改ormlite字段时,我都需要注释位图代码,因为DatabaseConfigUtil会在我取消注释之后为我生成错误。我可能会将此代码放在抽象类中,但我不得不在抽象类中对DataField进行映像,因为ormlite对此结构不起作用。
这个问题的最佳解决方案是什么?
答案 0 :(得分:0)
创建Base类并使用static关键字编写方法。 在项目的任何地方使用此方法。
使用Classname,例如: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 = "";
}
}
}
答案 1 :(得分: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)
。