2014-12-03 83 views
2

我需要在ImageView中點擊一個全屏打開圖像,就像有一個圖像的圖庫一樣!我會怎麼做?如何在ImageView中單擊全屏顯示圖像?

+1

也許你想按照這個教程[Zooming a View](http://developer.android.com/training/animation/zoom.html) – 2014-12-03 17:06:12

+0

我在imageview中添加了shema,但shema不清晰,我想當我點擊這個imageview的全屏幕shema顯示我不知道從哪裏開始,請原諒我可憐的英語:/她是一個屏幕截圖==> http://img15.hostingpics.net/pics/ 805298Capture.jpg – Anass 2014-12-03 17:13:06

+0

michal.z謝謝你多數民衆贊成我需要= DI將現在嘗試 – Anass 2014-12-03 17:18:00

回答

3

這是一個基本的例子:

佈局activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="center"> 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:adjustViewBounds="true" 
      android:src="@drawable/ic_launcher"/> 

    </LinearLayout> 

onCreate()方法:

private boolean zoomOut = false; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    final ImageView imageView = (ImageView)findViewById(R.id.imageView1); 
    imageView .setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
       if(zoomOut) { 
       Toast.makeText(getApplicationContext(), "NORMAL SIZE!", Toast.LENGTH_LONG).show(); 
        imageView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 
        imageView.setAdjustViewBounds(true); 
        zoomOut =false; 
       }else{ 
       Toast.makeText(getApplicationContext(), "FULLSCREEN!", Toast.LENGTH_LONG).show(); 
        imageView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)); 
        imageView.setScaleType(ImageView.ScaleType.FIT_XY); 
        zoomOut = true; 
       } 
      }     
    }); 
} 
+0

我編輯了代碼,使縮放縮小,當你點擊圖像。 – Jorgesys 2014-12-03 17:49:58

+1

你的回答對我不適用:( – Tony 2015-12-11 17:58:09

+0

@Tony發佈你的問題的問題,我自己測試過這個代碼並且工作! – Jorgesys 2015-12-11 18:07:03

2

Jorgesys的回答是好,但使圖像真正全屏幕,更好的方法是用.NoActionBar.Fullscreen主題進行新的對話/活動。例如,

<style name="FullScreenDialogTheme" parent="android:Theme.Material.NoActionBar.Fullscreen"/> 

這個新的對話框只包含圖像的圖像視圖。

然後,您將通過意圖傳遞可繪製對象,或從您的活動中繪製的對象引用。請查詢this問題了解更多詳情。 (爲了效率的考慮,我建議通過一些參考文獻)。