【问题标题】:Saving and recalling an image with a placeholder image as default in android在android中默认保存和调用占位符图像的图像
【发布时间】:2014-02-23 07:14:47
【问题描述】:

我目前有一份调查问卷,其中每个问题都动态添加到数据库中,然后应用程序会收到该问卷以获取说明。当它使用相机时,它可以很好地设置图像,使用代码:

void setResponse(Bitmap image) {
    captureButton.setImageBitmap(image);
}

够简单吧?当我单击更新时,要将其保存到 sqlite db,我使用以下命令将其保存为 base64 字符串:

String getResponse() {
    String response = "";
     try 
        {
           Bitmap bitmap = Bitmap.createBitmap(captureButton.getDrawingCache());
           ByteArrayOutputStream stream = new ByteArrayOutputStream();
           bitmap.compress(Bitmap.CompressFormat.PNG, 90, stream);
           byte[] image = stream.toByteArray();
           response = Base64.encodeToString(image, 0);
        } 
        catch (Exception e) 
        {   
           Log.e("Capture image error", e.getMessage());
           e.printStackTrace();
        }
     return response;
}

然后当我回到调查问卷时,如果它已经有数据,它只是使用这个加载它:

void setResponse(String response) {
    byte[] decodedString = Base64.decode(response, Base64.DEFAULT);
    Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
    captureButton.setImageBitmap(decodedByte);
}

我目前使用gestureOverlayView 的签名系统几乎相同。但为此,我在 CameraQuestionView.xml 文件中定义了一个占位符图像:

  <ImageView
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_margin="10dp"
   android:src="@drawable/placeholder"
   android:id="@+id/cameraQuestionCaptureButton"/>

但由于某种原因,在加载备份时,会显示占位符图像而不是数据库中保存的图像。我尝试使视图无效,但这也不起作用。

谢谢!

【问题讨论】:

  • 您是否尝试过不在xml上设置占位符?有同样的效果(ImageView没有出现?)?
  • 啊!是的,没有出现!我以为会的。似乎没有在数据库中设置它,如果是这样的话,并且占位符实际上并没有造成伤害。猜猜我的问题应该改为,为什么不将其保存在数据库中,哈哈?
  • 大声笑,也许:) ...尝试调试 setResponse 方法,您也可以尝试从资源中加载位图,以测试 setImageBitmap 是否正常工作
  • 好吧,我花了很长时间才找到它。当它设置响应时,我必须调试每一行,它没有设置文本,所以我检查它是否从数据库接收到任何东西,并且没有条目,所以我检查了一堆其他的东西,瞧!这是非常愚蠢的事情,我忘记将drawingcacheenabled设置为true,所以它可以抓取实际图像。哇,好不容易才找到!但是,嗯,现在可以了!

标签: android image view bitmap camera


【解决方案1】:

忘了做

captureButton.setDrawingCacheEnabled(true);

在保存我的回复时,首先没有保存位图。我花了一段时间才找到,我怀疑这对其他人有帮助,因为这只是另一个问题的愚蠢错误。

【讨论】:

  • 很高兴你发布了答案 :) 不要忘记设置为有效
猜你喜欢
  • 2014-04-30
  • 2016-11-14
  • 2015-11-17
  • 1970-01-01
  • 1970-01-01
  • 2021-12-06
  • 2020-09-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多