初めてのことを許してください、そして私の学学は正しくないかもしれません:
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();
}
}});
最初に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));
}
。
DrawableではなくresourceIDを渡す必要があることに気づきました。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"));