【问题标题】:Sent a Image from drawable to a ImageView?将图像从drawable发送到ImageView?
【发布时间】:2016-03-02 18:48:06
【问题描述】:

enter image description here我正在从事一个名为礼品卡的项目,这是一个简单的应用程序。当用户在一个活动中时,他们可以点击一张照片,当他们点击时,它将显示为另一个活动的背景。我正在尝试解决这个问题,但没有任何效果。你能帮我吗,但请以一种简单的方式,因为我是 Android Studio 的初学者。 谢谢!!!

【问题讨论】:

    标签: javascript android


    【解决方案1】:

    试试这个

    imageView.setImageResource(getResources().getIdentifier(
                "imagename", "drawable", context.getPackageName()));
    

    确保在参数中输入正确的图像名称和包名称。

    getResources().getDrawable() 在 API 22 中被贬值,你也可以试试这个

    ContextCompat.getDrawable(context, R.drawable.***)
    

    您可以使用以下代码实现版本检查。

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        return resources.getDrawable(id, context.getTheme());
    } else {
        return resources.getDrawable(id);
    }
    

    API 21 应该使用getDrawable(int, Theme) 方法而不是getDrawable(int)。因此调用已弃用的getDrawable(int) 方法等同于调用getDrawable(int, null)。 希望它对你有用。

    【讨论】:

    • 我有活动 1 和活动 2,在活动 2 中是一些照片,但是当有人点击照片时,我想更改活动的背景,这就是我想要的有意发送数据,但发送图像我使用了 5 天,我不知道这样做
    • 如果您想在第二个活动中从图像选择中设置第一个活动的背景,那么您需要将该特定图像的 ID 放入 Intent 使用 Intent i = new Intent(SecondScreen.this, FirstScreen.class); i.putExtra("IMAGE_U_NEED", "IMAGE_ID"); startActivityForResult(i); 在第一个活动中,您可以获得该图像通过他的 ID 通过 onActivityResult protected void onActivityResult(int requestCode, int resultCode, Intent data) 这是在您的第一个活动中,您从数据中选择图像 ID 并将其设置为背景
    • 非常感谢,但我已经做到了,我已经解决了问题
    • 好,如果我的回答对你有帮助,你可以投票。
    【解决方案2】:

    getDrawable(id) 自 API 22 起已弃用。现在您需要指定 Theme。

     getResources().getDrawable(id, context.getTheme());
    

    为了支持以前的 android 版本,请使用以下内容:

    ContextCompat.getDrawable(context, R.drawable.***)
    

    Android getResources().getDrawable() deprecated API 22

    【讨论】:

    • 使用“this”而不是“context”
    • 但实际上可能没有意义,因为我可以在活动 2 中完成所有这些编码,你明白我在说什么,因为在活动 2 中,客户可以点击照片,当他们点击时,背景会发生变化活动一的数据我可以有意发送,但图像我不知道该怎么做,因为我在 android 中是新的
    【解决方案3】:

    您可以像下面的代码一样在 ImageView 上简单地设置一个可绘制对象:

    imageView.setImageDrawable(getResources().getDrawable(R.drawable.your_drawable));
    

    【讨论】:

    • 它在我的工作,虽然我的应用程序的目标 SDK 是 API 23。
    • 我不知道为什么,但无论如何谢谢你现在我已经解决了我的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多