`

android当中大图片显示适应问题

 
阅读更多

在Android开发中比较头疼的是Android的分辨率问题,那么这里给大家介绍个万能办法,这个办法的优点是可以实现万能适应,给开发和美工设计提供了依据,但是对开发来说代码量也不少,具体办法:
(1)获取屏幕的尺寸
[mw_shl_code=java,true]
WindowManager windowManager = (WindowManager)         getSystemService(Context.WINDOW_SERVICE);
Display d = windowManager.getDefaultDisplay();
mWidth = d.getWidth();mHeight = d.getHeight();
DisplayMetrics dm = getResources().getDisplayMetrics()
mScreenDensity = dm.density;
[/mw_shl_code]
(2)美工设计图的尺寸
uiWidth,uiHeight
(3)获取缩放比例
[mw_shl_code=java,true]
float scaleWidth = mWidth / uiWidth;
float scaleHeight = mHeight/ uiHeight;
[/mw_shl_code]
(4)所有布局的尺寸用代码实现:
[mw_shl_code=java,true]public static int getWidthSize(int size) {
                return (int) (size * scaleWidth);
        }

        public static int getHightSize(int size) {
                return (int) (size * scaleHeight);
        }

        public static float getTextSize(int pxSize) {
                return (pxSize * scaleHeight) / mScreenDensity;
        }

        public static void setViewSize(int width, int height, View v) {
                int paramWidth = getWidthSize(width);
                int paramHeight = getHightSize(height);
                ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) v
                                .getLayoutParams();
                if (width != INVALID) {
                        params.width = paramWidth;
                }
                if (height != INVALID) {
                        params.height = paramHeight;
                }
                v.setLayoutParams(params);
        }

        public static void setViewPadding(int left, int top, int right, int bottom,
                        View v) {
                left = getWidthSize(left);
                top = getHightSize(top);
                right = getWidthSize(right);
                bottom = getWidthSize(bottom);
                v.setPadding(left, top, right, bottom);
        }

        public static void setViewMargin(int left, int top, int right, int bottom,
                        View v) {
                int paramLeft = getWidthSize(left);
                int paramTop = getHightSize(top);
                int paramRight = getWidthSize(right);
                int paramBottom = getHightSize(bottom);
                ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) v
                                .getLayoutParams();
                if (left != INVALID) {
                        params.leftMargin = paramLeft;
                }
                if (right != INVALID) {
                        params.rightMargin = paramRight;
                }
                if (top != INVALID) {
                        params.topMargin = paramTop;
                }
                if (bottom != INVALID) {
                        params.bottomMargin = paramBottom;
                }
                v.setLayoutParams(params);}[/mw_shl_code]
(5)这里是设置尺寸的代码:
[mw_shl_code=java,true]        setViewSize(100, 100, mView);
        setViewMargin(20, 0, 0, 20, mView);
        setViewPadding(10, 10, 10, 10, mView);
        mTextView.setTextSize(getTextSize(30)); [/mw_shl_code]
由上在设计效果图时,可对图内元素进行尺寸标注,程序即可实现按比例缩放。

分享到:
评论

相关推荐

    Android的TextView中显示图片和图像的方法

    本文将详细介绍如何在Android的TextView中显示图片和图像。 首先,我们要理解Android系统提供的一些基本资源类型,包括Drawable资源,这是用来表示图像的主要方式。在Android工程中,图片通常存储在res/drawable...

    Android 显示Camera图像

    在Android平台上,显示Camera图像是一项常见的任务,尤其在开发摄影、社交或自拍类应用时。这个主题主要涉及Android的Camera API以及如何将捕获的图像实时显示在用户界面上。下面将详细讲解这一过程中的关键知识点。...

    Android Big Image showing Android超大图片显示

    "Android Big Image showing" 是一个专门针对这一问题的应用示例,它展示了如何优雅地处理超大图片的显示,包括拖动、多点触控缩放以及自动适应屏幕宽度的功能。在这个项目中,我们将深入探讨涉及的关键知识点。 1....

    Android图片显示位置

    总之,Android图片显示位置的处理涉及到`ImageView`的使用、布局设计、触摸事件处理、动画实现等多个方面。开发者需要熟练掌握这些技术,以实现丰富多样的图片展示和文字叠加效果。在实际项目中,根据具体需求选择...

    Android-Android开发启动app弹出一张广告图片Dialog可以查看大图查看某个图片功能

    这里可以使用类似于之前自定义Dialog的方法,但需要调整布局以适应全屏显示,并且可能需要添加滑动手势来实现图片的左右滑动切换。如果使用新的Activity,可以传递图片URL到新Activity,然后在新Activity中加载图片...

    android显示sdcard上的图片

    在Android平台上,显示SD卡上的图片是一项常见的任务,尤其对于那些需要处理图像的应用来说更是必不可少。这个场景通常涉及到几个关键的技术点,包括读取SD卡上的文件、解析图片数据以及在屏幕上显示。以下是对这些...

    android 瀑布流图片显示

    瀑布流图片显示是Android开发中常见的一种布局方式,主要用于展示大量图片,如新闻、商品或者社交媒体的feed。这种布局的特点是图片逐个流式排列,每一行的图片数量不固定,形成一种类似瀑布倾泻的效果。下面将详细...

    Android-FlexibleRichTextView可以显示LaTeX图片代码的TextView

    总的来说,`Android-FlexibleRichTextView`是一个强大的工具,它极大地扩展了Android TextView的功能,使得开发者能够更方便地处理富文本,特别是在涉及LaTeX、图片和代码显示的情况下。通过自定义标签,开发者可以...

    android多张图片展示

    在Android开发中,实现“多张图片展示”的功能是一个常见的需求,尤其在社交应用中,如微信的朋友圈功能。这个功能允许用户通过多种途径选择图片,例如从相册选取多张图片或者直接拍照,之后还能提供删除选项。下面...

    Android图片声音显示

    在Android平台上,开发图片和声音显示功能是移动应用开发中不可或缺的部分。Android系统提供了丰富的API和工具,使得开发者能够轻松地处理图像和音频资源。以下将详细解释Android中与图片和声音相关的知识点。 1. *...

    android全屏显示手机指定路径图片

    在Android开发中,全屏显示手机指定路径图片是一项常见的需求,尤其在制作画廊或查看大图的应用场景中。本文将详细讲解如何实现这一功能,主要涉及`ImageView`组件、图片加载策略以及优化图片显示。 首先,我们需要...

    Android读取并显示word文件的代码例子

    - 对于图片,可以调用`getImages()`方法,然后将图片保存到本地并生成对应URI,以便在Android UI中显示。 4. **显示Word内容**: - 文本内容可以显示在`TextView`或其他文本控件中,但可能需要进行格式转换和换行...

    android个性图片错位显示

    在Android开发中,个性图片的错位显示是一个常见的视觉效果问题,这可能涉及到多个技术点。首先,我们从“精美图片错位显示浏览源码”这个描述出发,可以推测问题可能出在图片加载、布局渲染或者动画效果上。下面将...

    Android-Android九宫格显示多图或item仿照QQ空间图片列表

    在Android应用开发中,"Android九宫格显示多图或item仿照QQ空间图片列表"是一种常见的用户界面设计,主要用于展示一系列的图片或者图标,让用户能够快速浏览和选择。这个功能在社交应用、新闻阅读应用以及各种内容...

    Android通过ImageView实现图片的显示和切换

    在Android开发中,显示图像是一项基础且常见的任务。ImageView组件是Android SDK中用于展示静态图像的关键控件。本文将深入探讨如何使用ImageView来显示图片,并介绍如何通过按钮控制图片的切换,实现简单的图片浏览...

    android 显示网络图片

    在Android开发中,显示网络图片是一项常见的任务,无论是制作应用的界面还是构建用户交互的界面,都需要用到这个功能。本篇文章将详细讲解如何在Android应用程序中加载并显示网络上的图片,以实现“android 显示网络...

    Android 点击缩略图显示大图 Demo

    1. **ImageView**: 在Android UI设计中,`ImageView`是用于显示图像的控件,它是处理图片的基础。在这个Demo中,缩略图和大图通常都是通过`ImageView`来展示的。你可以使用`setImageResource()`、`setImageBitmap()`...

    android 瀑布流显示图片

    在这个场景中,我们主要探讨如何在Android平台上实现一个使用异步加载方式来显示图片的瀑布流程序。 首先,我们需要理解瀑布流的核心原理。瀑布流的关键在于动态调整每个单元格的高度,以适应不同比例的图片。通常...

    android 图片点击放大

    对于大图,可以使用内存缓存和磁盘缓存来减少加载时间,并使用LruCache或者 Fresco、 Glide 等图片加载库来管理内存,避免因加载大量图片导致的内存溢出问题。 最后,我们来看一下压缩包中的"ImageMagnify"文件,这...

    android在dialog中显示二维码

    本文将深入讲解如何在Android的Dialog中生成并显示二维码,以及如何处理点击Dialog外部以关闭Dialog的事件。 首先,我们需要了解二维码生成的基本原理。二维码(Quick Response Code)是一种二维条形码,能够存储比...

Global site tag (gtag.js) - Google Analytics