将ImageView设置为可绘制(Android)

原谅我是新来的,而我的女性也许是不正确的:

我在class1中有一个图像数组,当图像被选中时,它的id被传递给class2(下面的代码),然后显示该图像,并给出选项将其设置为壁纸。 问题是,使用下面的代码我需要一个可绘制的分配壁纸,而不是ImageView。 有人可以给我一些指导,在我有“myWallpaperManager.setResource(需要在这里绘制一个drawable);”

提前致谢。 希望这是有道理的,因为我说我是一个noob!

public class FullWallView extends Activity { private Button wallbutton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.wallpaper_full); // get intent data Intent i = getIntent(); // Selected image id int position = i.getExtras().getInt("id"); ImageAdapter imageAdapter = new ImageAdapter(this); ImageView imageView = (ImageView) findViewById(R.id.full_wall_view); imageView.setImageResource(imageAdapter.mThumbIds[position]); //Making Button Clickable and setting the wallpaper wallbutton = (Button) findViewById(R.id.apply); wallbutton.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext()); try { myWallpaperManager.setResource(need a drawable here); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}); 

Solutions Collecting From Web of "将ImageView设置为可绘制(Android)"

首先定义Drawable,然后将其设置在ImageView中。

 img=(ImageView)findViewById(R.id.imageview1); Drawable myDrawable = getResources().getDrawable(R.drawable.imageView1); img.setImageDrawable(myDrawable); 

getResources()。getDrawable(int id)方法在API级别22中被弃用。

你可以检查版本,然后使用这些方法:

  if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { imageView.setImageDrawable(getApplicationContext().getDrawable(R.drawable.myDrawable)); } else { imageView.setImageDrawable(getResources().getDrawable(R.drawable.myDrawable)); } 

我刚刚注意到,你需要传递resourceID而不是Drawable,没有直接的方法从ImageView获取resourceID,为什么不尝试记住这个值,然后传递它。

希望这有助于和享受您的工作