Android 如何从图像资源Id获取图像

Android 如何从图像资源Id获取图像,android,image,android-intent,drawable,android-drawable,Android,Image,Android Intent,Drawable,Android Drawable,我曾经尝试过这样的方法,我看到过这个例子有它的可绘制名称和查找资源id。现在我不知道可绘制名称,我只需要从imgresourceId找到它 这是我的图像资源Id int id = Integer.parseInt(data.getStringExtra("imgId")); 05-30 12:09:33.648: D/imgid(5461): 2130837579 我想将其设置为edittext的可绘制右侧 所以我做了类似的事情 ed_operator.setCompoundDrawable

我曾经尝试过这样的方法,我看到过这个例子有它的可绘制名称和查找资源id。现在我不知道可绘制名称,我只需要从imgresourceId找到它

这是我的图像资源Id

int id = Integer.parseInt(data.getStringExtra("imgId"));

05-30 12:09:33.648: D/imgid(5461): 2130837579
我想将其设置为edittext的可绘制右侧

所以我做了类似的事情

ed_operator.setCompoundDrawablesRelativeWithIntrinsicBounds( null, null, id, null );
第三个参数要求可绘制,因此如何将此图像资源id转换为可绘制


是否有其他解决方案可供我应用……

从资源中获取图像,并且您知道其id,请在活动中执行以下操作:

// Get the id.
int id = Integer.parseInt(data.getStringExtra("imgId"));
// Get the drawable from the id.
Drawable d = getResources().getDrawable(id);

嘿,你把资源ID(intenger)作为额外的。还有额外的绳子。使之成为

        int resID =  data.getIntExtra("imgId",-1);
        if(resID != -1 ){
          Drawable img = getResources().getDrawable( resID );
          img.setBounds( 0, 0, 60, 60 );

          ed_operator.setCompoundDrawablesRelativeWithIntrinsicBounds( null, null, img, null );//if you dont have images already in drawable 
          //OR
          ed_operator.setCompoundDrawables( null, null,img,null);//if you had set images in your drawable
        }

你也可以发布你的xml代码吗?你的图像的名称是什么?你在“myImageList”数组中有什么…?我有一个@shobhan图像数组,我的意思是它们是资源id还是名称或可提取的..?检查它@shobhan检查我的问题我知道它的资源id..如何将其转换为可提取的如果你知道资源id并且你想从资源id获取可提取的内容,就是这样。你必须澄清一下。setCompoundDrawablesRelative的正确用法是setCompoundDrawablesRelative(可绘制,可绘制,可绘制,可绘制),而不是setCompoundDrawablesRelative(int,int,int,int)。因此,您必须首先从id获取可绘制文件,然后将其设置为编辑文本这是我的资源id 05-30 12:09:33.648:D/imgid(5461):2130837579这是我的img资源id 05-30 12:09:33.648:D/imgid(5461):2130837579如何将此转换为drawable Nope dude..我已经尝试了所有操作,但drawable未设置为drawable right…虽然它显示get drawable已损坏,但我已经为edittext设置了一个正确的drawable..问题是我如何将其替换为我的drawable..它没有被替换我已经检查过了,但nthng hpnd无论如何都可以替换现有图像或从右侧可绘制图像中删除图像。因此,我首先删除现有图像,然后才能设置我编辑了您的代码。请检查它。这样我就可以将其作为已回答的运算符接受。setCompoundDrawables(null,null,img,null);如果edittext中已经有可绘制的文本,则可以应用此选项