【问题标题】:Return/Pass ImageView file返回/传递 ImageView 文件
【发布时间】:2015-04-25 20:14:09
【问题描述】:

我在我的 AndroidLauncher 中生成了一个 ImageView,并且需要在我的一个屏幕类中使用它,所以我创建了一个界面。如何传递该图像并在我的屏幕类中使用它?我需要先把它做成Bitmap吗?

我现在得到的是:

Uri selectedImage = data.getData();
            selectedImagePath = getPath(selectedImage);
            imageView.setImageURI(selectedImage);

和我的界面:

public interface purchInterface{
public void getSelectedImage();
}

在 AndroidLauncher 中:

@Override
public void getSelectedImage() {
    imageView.getDrawable();
}

我在这里深水。请注意,我需要能够在我的屏幕类中绘制此图像。

【问题讨论】:

    标签: android interface libgdx


    【解决方案1】:

    您需要从getSelectedImage 方法返回以某种格式编码的图像。否则,您的实现将检索可绘制对象并立即删除它。

    你应该参考Converting Android Bitmap to LibGdx's Texture


    所以你的界面可能是

    public interface purchInterface {
        public byte[] getSelectedImage();
    }
    

    实施可能是

    @Override
    public byte[] getSelectedImage() {
        // Convert image into bitmap, encode in a byte array.
    }
    

    您可以调用接口的方法并使用上述问题中描述的方法解码字节数组。

    希望这会有所帮助。
    祝你好运。

    【讨论】:

    • 谢谢!我从屏幕类中的覆盖中收到此方法: public byte[] getSelectedImage(){return new byte[0];} 如何使用它来绘制字节的内容?
    • 我上面提到的问题中的代码可以直接用于从数组ob字节创建Texture
    • 是的,但是当 getSelectedImage() 被覆盖到我的屏幕类并实际绘制它时,我该如何使用它?我真的不能以某种方式绘制 getSelectedImage() 吗?
    【解决方案2】:

    使用单例类并使用 setter() 将图像存储在其中,稍后您可以使用 getter()。

    或者您使用 base64 编码将图像转换为字符串并将其保存共享首选项或文件或数据库或外部存储或作为意图数据传递给下一个活动,然后将其解码为位图

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多