Установите ImageView на переносимый (Android)

Простите меня за то, что вы новичок, и мой теминология может быть неправильной:

У меня есть массив изображений в классе1, когда изображение выбрано, его идентификатор передается классу2 (код ниже). Затем я показываю это изображение и даю возможность установить его как фоновый рисунок. Проблема в том, что, используя приведенный ниже код, мне нужна возможность рисовать обои, а не ImageView. Может ли кто-нибудь дать мне некоторое руководство по ссылке на фактическое вытягивание, где у меня есть msgstr "myWallpaperManager.setResource(нужен здесь вариант);

Спасибо заранее. Надеюсь, это имеет смысл, поскольку я сказал, что я ноб!

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

           }});

Ответ 1

Сначала определите Drawable, а затем установите его в ImageView.

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

Ответ 2

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

.

Ответ 3

Я только что заметил, что вам нужно передать resourceID не Drawable, нет прямого способа получить resourceID из ImageView, почему бы вам не попробовать запомнить это значение, а затем передать его.

Надеемся, что это поможет и насладится вашей работой.

Ответ 4

Если вы хотите сделать это динамически, указав только имя изображения:

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

затем установите изображаемое изображение так:

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