当前位置: 首页 > 知识库问答 >
问题:

从Firebase检索Base64编码图像并在Android应用程序上显示

华煜祺
2023-03-14

我正在尝试从Firebase中检索一个Base64编码的图像,并在Android Studio开发的应用程序上显示它。代码正在ImageView元素上放一些东西,但我认为那只是一个白色图像,因为ImageView元素的背景刚好消失了。有人能帮忙吗?

public class MainActivity extends AppCompatActivity {

    private Button setting;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ImageView image = (ImageView) findViewById(R.id.CamaraImage);
        FirebaseDatabase.getInstance().getReference().child("photos").child("realtime").child("-MbB__vRH7wrFXqL_8UO").child("photo").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                String imagestr = dataSnapshot.getValue(String.class);
                String imageclean = imagestr.replace("data:image/jpeg;base64,", "");
                //64Base to BitMap Conversion
                byte[] decodedString = Base64.decode(imageclean, Base64.DEFAULT);
                Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
                image.setImageBitmap(decodedByte);
                //Toast.makeText(MainActivity.this, imageclean, Toast.LENGTH_SHORT).show();
            }
            @Override
            public void onCancelled(DatabaseError error) {
                // Failed to read value
                Log.w(TAG, "Failed to read value.", error.toException());
            }
        });
}

共有1个答案

胡泓
2023-03-14
"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVI..."
String imageDataBytes = completeImageData.substring(completeImageData.indexOf(",")+1);

InputStream stream = new ByteArrayInputStream(Base64.decode(imageDataBytes.getBytes(), Base64.DEFAULT));
 类似资料:
  • 问题内容: New Firebase的扩展问题检索数据并将其放在tableView(Swift) 通过将Firebase代码移动到viewDidLoad,Post的所有文本部分都可以显示出来。但是我仍然不能将图像放到tableView中。我已经检查了图像检索,并成功了,我想我从Firebase检索的图像不在发布数组中。 这是我的修复代码: 我的Post结构希望对您有所帮助! 希望能得到一些建议!

  • 我对react native还不熟悉,我正在尝试显示用base 64编码的图像。 这是猫鼬方案,我在这里存储我的图像 这就是我将它们保存到数据库的方式(photoData包含img): 这是我的img数据:img数据 数据作为缓冲区返回,因此使用 数据:图像/png;base64,${element.img} 它不起作用。我试着使用Buffer.from(“”,'base64')。toString

  • 问题内容: 我正在为Firefox / IE构建一个开放式搜索附加组件,并且该图像需要经过Base64编码,因此如何对我拥有的收藏夹图标进行64位编码? 我只熟悉PHP 问题答案: 据我记得,图像数据有一个xml元素。您可以使用此网站对文件进行编码(使用上载字段)。然后,只需将数据复制并粘贴到XML元素即可。 您也可以这样使用PHP来做到这一点: 使用Mozilla指南获取有关创建OpenSear

  • 我面临的问题是,在使用Gallery Intent从Gallery中选择图像时,虽然图像存储在Firebase存储中,但不显示在ImageView中。相反,占位符消失,什么也看不见。另外,我对Android和Firebase还不熟悉。 附上相同的截图。 上传前 上传后 以下是我的代码:

  • 我正在学习这个教程。有了这个链接,你可以看到我对这个问题的评论。我遵循了这个教程,成功地在两个同龄人身上发送和接收短信。我还可以从控制台看到我的Firebase数据库及其更新。在这之前一切都很顺利。 现在,我想向Firebase发送/接收摄像头图像,所以我找到了各种方法将图像转换为Base64编码字符串,将该字符串上传到Firebase数据库,我在这方面也取得了成功。 我已成功将编码字符串上传到F

  • 我使用下面的代码插入了捕获图像,并获得了< code >“not null”,这表明数据不为null。 然而,当我试图检索捕获的图像时,应用程序崩溃了。 MyDatabaseHelper.java 原因:Java . lang . illegalstateexception:无法从CursorWindow读取第0行第0列。在从游标访问数据之前,请确保游标已正确初始化。at Android . da