2014-12-03 55 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问题了解更多详情。 (为了效率的考虑,我建议通过一些参考文献)。