标题似乎模棱两可,但我的目标很容易理解。
我在 res/drawable-hdpi 下的项目中有一定数量的图像。
在我的应用程序中,我从服务器获取名称列表,并将它们保存在本地数据库中。
每个名称对应于图像的名称,末尾带有“.png”。
我正在使用画廊,用户可以通过单击相应的图像从数据库中选择其中一个名称。
一切都很好,直到这里。
但是现在,假设将在服务器端添加一个新名称,因此图像不会出现在应用程序中。在这种情况下,我必须更新我的应用程序并将正确的图像放入其中。
为了避免用户在图库中看到“黑色图像”(因为该图像不存在),我想用 android 创建这个图像。
如果图像在项目中不存在,我实际上能够捕捉并创建一个新图像(白色背景,中间有名称)。
现在,问题是如何以及在哪里存储这个新图像。显然,不可能将其存储在 res/drawable 文件夹中。那么,在哪里以及如何存储?
这是我创建新图像的代码部分:
if (imageId == 0)
{
Bitmap journal_template = BitmapFactory.decodeResource(context.getResources(), R.drawable.journals_template).copy(Bitmap.Config.ARGB_8888, true);
Canvas myCanvas = new Canvas(journal_template);
Paint myPaint = new Paint();
myPaint.setColor(Color.BLACK);
myPaint.setTextSize(25);
String journal_name = publicJournalsNameSystem.get(i).toLowerCase();
Paint textPaint = new Paint();
textPaint.setARGB(200, 254, 0, 0);
textPaint.setTextAlign(Align.CENTER);
int xPos = (myCanvas.getWidth() / 2);
int yPos = (int) ((myCanvas.getHeight() / 2) - ((textPaint.descent() + textPaint.ascent()) / 2)) ;
myCanvas.drawText("Your text", xPos, yPos, myPaint);
try {
FileOutputStream out = new FileOutputStream("/journals_"+journal_name+".png");
journal_template.compress(Bitmap.CompressFormat.PNG, 90, out);
} catch (Exception e) {
e.printStackTrace();
}
}