簡體   English   中英

將ImageView設置為drawable(Android)

[英]Set ImageView to a drawable (Android)

請原諒我是新手,我的女性學可能不正確:

我在class1中有一個圖像數組,當選擇一個圖像時,它的id被傳遞給class2(下面的代碼)然后我顯示該圖像並給出將其設置為壁紙的選項。 問題是,使用下面的代碼我需要一個drawable來分配壁紙,而不是ImageView。 有人可以給我一些參考實際drawable的指導,我有“myWallpaperManager.setResource(需要一個drawable here);”

提前致謝。 希望這是有道理的,因為我說我是一個菜鳥!

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();
            }

           }});

首先定義Drawable,然后在ImageView中設置它。

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

在API級別22中不推薦使用getResources()。getDrawable(int id)方法。

您可以檢查版本然后使用以下方法:

    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的方法,你為什么不試着記住這個值然后傳遞它。

希望這有助於並享受您的工作

如果您想通過僅提供圖像名稱來動態執行此操作:

public static Drawable getImage(Context context, String name) {
    return context.getResources().getDrawable(context.getResources().getIdentifier(name, "drawable", context.getPackageName()));
}

然后像這樣設置imagedrawable:

ImageView image = findViewById(R.id.logo);
image.setImageDrawable(getImage(context, "imageName"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM