こんにちは皆さん
カメラで撮った画像であるImageViewの配列があります。しかし、sdなどには保存されません。
次に、すべての画像をギャラリーに表示します。
今、私はそのギャラリーで画像のプレビューを作成しようとしています。したがって、ギャラリー内の画像をクリックすると、ビューが切り替わり、次のように画像が線形レイアウトに追加されます。
private void ShowImagePreview (ImageView p_image, View p_view)
{
setContentView(R.layout.preview);
LinearLayout prevHolder = (LinearLayout) findViewById(R.id.mainHolder);
p_image.setLayoutParams( new ViewGroup.LayoutParams(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT));
p_image.setScaleType(ImageView.ScaleType.FIT_XY);
prevHolder.addView(p_image);
}
ただし、このコマンドでは:prevHolder.addView(p_image); ターゲット例外が発生します。
デバッグしたところ、p_imageが実際にはnullなどではないことがわかりました...
私も試しました:
ImageView test = new ImageView(this);
test.setImageResource(R.drawable.logo);
test.setLayoutParams( new ViewGroup.LayoutParams(WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT));
prevHolder.addView(test);
そしてこれはうまくいきました。
何が問題になるのでしょうか?..
ありがとうございました
編集:
これは私が得る例外です:05-22 17:58:25.835:ERROR / AndroidRuntime(11815):java.lang.IllegalStateException:指定された子にはすでに親があります。最初に子の親でremoveView()を呼び出す必要があります。
これは、ギャラリーですでに画像が使用されているためだと理解しています。どうすればそれを解決できますか?
ありがとうございました