2016-06-20 10 views
0

を元の画面に戻す方法クリックしたときに全画面表示(パンとズーム付き)に展開したいサムネイルを含む画面ビューを持つアプリを作成しました。Android - setContentView(img)

パンをズームすると大きな画像が表示されますが、大きな画像をクリックすると元のビューに戻りたいと思っています。

final TouchImageView imgBig = new TouchImageView(Dashboard.this); 
final ImageView img = (ImageView) findViewById(R.id.graph); 
final Bitmap bitmap = result.getImage(); 

img.setImageBitmap(bitmap); 
img.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     imgBig.setImageBitmap(bitmap); 
     imgBig.setMaxZoom(4f); 
     setContentView(imgBig); 
     imgBig.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

      // What do I need to do here to return to original thumbnail screen view? 

      } 
     }); 
    } 
}); 

成功しなかった多くのことを試しましたか?

+1

setContentView(R. )を別の呼び出しに追加するだけです。 –

答えて

0

元のsetContentView(R.layout.main)だけで元に戻します。

レイアウトxmlにImageViewを配置し、イメージを設定して表示したり非表示にする方がよい場合があります。さもなければ、制限されている可能性のある1つのビューだけが残っています。

setContentViewを実行すると、そのコンテンツでアクティビティが初期化されます。だから、もしあなたがただそれの上に何かを置くことを望むのであれば、あなたは隠された見解を持つことができます。あなたのレイアウトでは、XMLコードは、他のすべてのビューの上に座っている画像ビューを作成します。次に、visibility = "gone"をhiddenに設定します。 次に、setContentViewを呼び出す代わりにonClickを呼び出すだけで、イメージビットマップを設定してimgBig.setVisibility(View.GoneまたはView.Visible)を呼び出して、大きなイメージを表示または非表示にします。

もう1つの可能性は、2つのアクティビティを持つことです。 startActivityを呼び出して大きなイメージを表示し、終了したら他のアクティビティに戻るようにします。

もう1つの可能性は、フラグメントを使用することですが、それはおそらくより複雑です。

+0

元のレイアウトビューを元に戻しましたが、setContentView()コールの前にデータを設定していました。私がしたかったのは、完全に人口が多い画面に戻ることです。つまり、通話前に状態を保存していましたか? – markysparky

+0

あなたのために私の答えを更新しました。 – Marc

+0

これは素晴らしいことです。 – markysparky

関連する問題