android实现点击图片全屏展示效果

本文实例为大家分享了android实现点击图片全屏展示的具体代码,供大家参考,具体内容如下

MainActivity:

public class MainActivity extends AppCompatActivity {
 private ImageView imageView;
 private Dialog dialog;
 private ImageView image;

 @Override
 protected void onCreate(Bundle savedInstanceState) {

 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 init();

 //小图的点击事件(弹出大图)
 imageView.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
  dialog.show();
  }
 });

 }

 private void init() {
 imageView = (ImageView) findViewById(R.id.image);

 //展示在dialog上面的大图
 dialog = new Dialog(MainActivity.this,R.style.FullActivity);

 WindowManager.LayoutParams attributes = getWindow().getAttributes();
 attributes.width = WindowManager.LayoutParams.MATCH_PARENT;
 attributes.height = WindowManager.LayoutParams.MATCH_PARENT;
 dialog.getWindow().setAttributes(attributes);

 image = getImageView();
 dialog.setContentView(image);

 //大图的点击事件(点击让他消失)
 image.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
  dialog.dismiss();
  }
 });

 }

 //动态的ImageView
 private ImageView getImageView(){
 ImageView imageView = new ImageView(this);

 //宽高
 imageView.setLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));

 //imageView设置图片
 @SuppressLint("ResourceType") InputStream is = getResources().openRawResource(R.drawable.lala);

 Drawable drawable = BitmapDrawable.createFromStream(is, null);
 imageView.setImageDrawable(drawable);

 return imageView;
 }
}

布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context=".MainActivity">

 <ImageView
 android:id="@+id/image"
 android:src="@drawable/lala"
 android:layout_centerInParent="true"
 android:layout_width="200dp"
 android:layout_height="200dp" />

</LinearLayout>

style:

<style name="FullActivity" parent="AppTheme">
 <item name="windowNoTitle">true</item>
 <item name="android:windowFullscreen">true</item>
</style>

效果图:

没点击:

点击后:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android如何让WebView中的HTML5页面实现视频全屏播放

    前言 本文主要是将最近工作中遇到的一个问题进行总结分享,主要介绍的是如何让WebView中H5页面全屏播放视频.关于这个问题,做一下简单分析,希望对大家有所帮助,下面话不多说了,来看看详细的介绍吧. 效果图 运行效果 其实很简单,就是配置问题.关键地方配好了,基本没什么问题了. 硬件加速 设置WebView 在清单需要配置的AndroidManifest.xml <application android:allowBackup="true" android:icon="

  • android 全屏去掉底部虚拟导航栏的方法

    如下所示: @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus) { getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATIO

  • android 中ProgressDialog实现全屏效果的示例

    做项目的时候,直接用到了一个ProgressDialog,需要实现全屏的效果,如下图所示,功能跑起来的时候发现不是全屏,只是包裹了当前的内容,如下图所示,不过查找一些资料,把问题解决了. ProgressDialog 继承自AlertDialog,AlertDialog继承自Dialog,实现DialogInterface接口. ProgressDialog的创建方式有两种,一种是new Dialog ,一种是调用Dialog的静态方法Dialog.show(). // 方式一:new Dial

  • Android实现全屏截图或长截屏功能

    本文实例为大家分享了Android实现全屏截图或长截屏功能的具体代码,供大家参考,具体内容如下 全屏截图: /** * 传入的activity是要截屏的activity */ public static Bitmap getViewBitmap(Activity activity) { // View是你需要截图的View View view = activity.getWindow().getDecorView(); //这两句必须写,否则getDrawingCache报空指针 view.se

  • Android开发之全屏与非全屏的切换设置方法小结

    本文实例讲述了Android开发之全屏与非全屏的切换设置方法.分享给大家供大家参考,具体如下: 静态方法 1. 代码方式 在Activity类OnCreate方法中设置,代码如下 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().se

  • Android给任何view添加全屏倾斜水印

    本文主要介绍了Android给任何view添加全屏倾斜水印,具体如下,分享给大家 如果要实现如下效果 目前有两种思路: 1.先画出带有水平文字的照片,然后再和原图合成即可 2.旋转画布,然后直接画布写字即可 两种方案都差不多,这里讲解的第二种方案. 但是两种方案都存在问题,就是文字需要完全覆盖,那么就需要我们的画布要比图片大,其实只要把画布移动到原图的外切图即可. 为了简单分析问题,我们取最长的边,把原图当成正方形,外切正方形的边长即为对角边.如下图 从上图我们可以看出,我们需要旋转45度然后平

  • Android使用WebView实现全屏切换播放网页视频功能

    首先写布局文件activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="fill_parent" and

  • Android Studio 全屏沉浸式透明状态栏效果的实现

    如何实现?1.)首先实现全屏 第一种:继承主题特定主题 在Android API 19以上可以使用****.TranslucentDecor***有关的主题,自带相应半透明效果,Theme.Holo.NoActionBar.TranslucentDecor和Theme.Holo.Light.NoActionBar.TranslucentDecor两种主题为新增加的,所以要新建values-v19文件夹并创建styles文件添加如下代码 <style name="AppBaseTheme&q

  • Android开发实现浏览器全屏显示功能

    本文实例讲述了Android开发实现浏览器全屏显示功能.分享给大家供大家参考,具体如下: 业务需求:浏览器设置中支持全屏显示的功能. 分析:只需要在设置界面上增加是否全屏的checkBox , 然后 BrowserActivity 中读取这个值, 来设置窗口的 Style. 修改: 1.  修改项目下的 res/xml 文件夹下的 browser_preferences.xml 文件, 添加 <CheckBoxPreference android:key="full_screen"

  • Android Toast实现全屏显示

    本文为大家分享了Android Toast全屏显示的具体代码,供大家参考,具体内容如下 废话不说,直接上代码: private void toastFullScreen(){ Toast toast = Toast.makeText(this, null, Toast.LENGTH_LONG * 10 * 1000); toast.setGravity(Gravity.CENTER, 0, 0); LinearLayout toastView = (LinearLayout)toast.getV

  • Android如何判断页面是否全屏

    Android 想判断 Activity 是否是全屏,网上找了些方法,看到有直接获取 flags 和一个具体的值比较,并没有用,其实分析下来也觉得应该不对.大多都是如何设置全屏和取消全屏,并没有判断是否全屏的方法. 其实全屏控制要么通过主题设置,要么代码 addFlags,最终都会到 Window 的 setFlags 方法里,下面看源码: public void setFlags(int flags, int mask) { final WindowManager.LayoutParams a

随机推荐