web-dev-qa-db-ja.com

ImageViewをドローアブルに設定(Android)

初めてのことを許してください、そして私の学学は正しくないかもしれません:

Class1に画像の配列があります。画像が選択されると、そのIDがclass2に渡されます(以下のコード)。次に、その画像を表示し、壁紙として設定するオプションを指定します。問題は、以下のコードを使用して、ImageViewではなく、ドローアブルで壁紙を割り当てる必要があることです。 「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();
            }

           }});
13
nmiltner

最初にDrawableを定義してから、ImageViewに設定します。

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

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

9
Kuvalya

DrawableではなくresourceIDを渡す必要があることに気づきました。ImageViewからresourceIDを取得する直接の方法はありません。この値を覚えてから渡してみませんか。

これがあなたの仕事に役立ち、楽しむことを願っています

1
Marko Lazić

イメージ名を指定するだけで動的にこれを行う場合:

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"));
0
Gordons