これを簡単にします。mImages[position]にアクセスすることで 、設定したい画像をImageView
取得できAlertDialog
ます。Drawables
ImageView
ここに簡単な説明があります(以下の完全な説明):要するに、メインアクティビティからダイアログに画像を渡し、ダイアログをキャンセルdismiss
してシステムの壁紙を設定することを確認する方法が必要です(メインアクティビティから渡された画像に) ) 次にfinish();
アクティビティ。
完全な説明は次のとおりです。
ユーザーには と が表示され、Gallery
にImageView
フォーカスGallery
がある画像の大きなプレビューが表示されますGallery
。
に表示される画像は、Gallery
次を使用してセットアップされます。
// setup wallpaper array
private void findWallpapers() {
mThumbs = new ArrayList<Integer>(24);
mImages = new ArrayList<Integer>(24);
final Resources resources = getResources();
final String packageName = getApplication().getPackageName();
addWallpapers(resources, packageName, R.array.wallpapers);
}
// setup array defining all wallpapers & define thumbnails
private void addWallpapers(Resources resources, String packageName, int list) {
final String[] extras = resources.getStringArray(list);
for (String extra : extras) {
int res = resources.getIdentifier(extra, "drawable", packageName);
if (res != 0) {
final int thumbRes = resources.getIdentifier(extra + "_small",
"drawable", packageName);
if (thumbRes != 0) {
mThumbs.add(thumbRes);
mImages.add(res);
}
}
}
}
「壁紙の設定」Button
を押すと、AlertDialog
が開き、 でフォーカスされた画像の別のプレビューが表示されGallery
ます。AlertDialog
には、指示TextView
、壁紙として設定することを提案している画像のプレビュー、「OK」Button
と「キャンセル」が含まれButton
ます。[OK] を押すと、プレビューButton
の画像が.ImageView
InputStream
再度、感謝します!
private void selectWallpaper(int position) {
Toast.makeText(getBaseContext(), "Select Wallpaper", Toast.LENGTH_SHORT)
.show();
if (mIsWallpaperSet) {
return;
}
mIsWallpaperSet = true;
Context context = this;
// CharSequence text = "Wallpaper Set!";
// int duration = Toast.LENGTH_LONG;
InputStream stream = getResources().openRawResource(
mImages.get(position));
final Dialog accept = new Dialog(context);
accept.setContentView(R.layout.confirm);
accept.setTitle("Please Confirm");
TextView instructions = (TextView) accept.findViewById(R.id.textView1);
instructions.setText("Would you like to set this as your wallpaper?");
ImageView wallpreview = (ImageView) accept
.findViewById(R.id.imageView1);
wallpreview.createFromStream(stream, "test");
// SETUP cancel (no btn) listener
Button cancelbtn = (Button) accept.findViewById(R.id.button2);
cancelbtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
accept.dismiss();
}
});
// SETUP Yes Btn listener
Button okbtn = (Button) accept.findViewById(R.id.button1);
okbtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// dismiss being used as placeholder, actually setting wallpaper
// will be added
accept.dismiss();
}
});
accept.show();
}
{
;
}