我需要在ImageView中单击时全屏打开图像,就像一个带有一个图像的图库!我该怎么做?
答案 0 :(得分:5)
这是一个基本的例子:
布局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;
}
}
});
}
答案 1 :(得分:3)
Jorgesys的答案很好,但为了使图像真正全屏,更好的方法是使用.NoActionBar.Fullscreen
主题制作新的对话/活动。例如,
<style name="FullScreenDialogTheme" parent="android:Theme.Material.NoActionBar.Fullscreen"/>
此新对话框仅包含图像的图像视图。
然后你可以通过意图将drawable或者drawable的引用传递给这个新的。有关详细信息,请查看this问题。 (出于效率考虑,我建议通过一些参考文献)。
答案 2 :(得分:0)
试试这段代码..
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
imageView.setVisibility(View.GONE);
imageView2.setVisibility(View.VISIBLE);
Glide.with(this).load(imagePath).into(imageView2);
}
});
xml代码..
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
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"
/>
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/ic_launcher"
android:visibility="gone"
/>
</LinearLayout>
并且还使用了滑动然后将下面的依赖添加到app level gradle文件中。
implementation 'com.github.bumptech.glide:glide:4.7.1'