`

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 图片显示与屏幕适配的问题

    主要介绍了Android 图片显示与屏幕适配的问题的相关资料,Android的分辨率问题是每个Android 开发者头疼的问题,那么这里给大家介绍个万能办法,需要的朋友可以参考下

    Android端获取串口列表,修改串口权限,关闭系统串口打印,读写串口。.zip

    4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...

    Android智能手机平台多分辨率解决方案详解

    在处理多分辨率问题时,Android 平台提供了多种方法,例如图片缩放和自动定义像素尺寸和位置等。但是,这些方法也存在一些缺点,例如图片缩放可能会导致图片显示不清晰,自动定义像素尺寸和位置可能会导致元素不能...

    Android代码-DrawingView

    与DrawingView-Android相比较,这个版本的控件大小可以适应图片大小和尺寸,去除了“橡皮擦”功能,增加“撤销功能”,解决了在图像上涂鸦路径不能保存的问题。 具体实现 控件适应图片 因为这个我们需要这个控件居中...

    基于百度Asr SDK开发的Asr引擎,可以直接调用Android系统asr接口来进行语音识别.zip

    4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...

    Android添加系统白名单和电池优化.zip

    4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...

    Android项目项目_Gallery从SD卡中获取图片,并显示.rar

    **Android Gallery:从SD卡获取图片并展示.rar文件** 本项目为一款基于Android平台的Gallery应用,用户可从SD...通过本项目,开发者可快速构建具备图片检索与预览功能的Android应用,并可灵活扩展以适应不同场景需求。

    《android编程入门经典》书籍源代码

    ◆ 讨论了如何适应不同的显示方向、如何理解屏幕的组件 以及如何处理用户界面通知 ◆ 描述了在使用TextView、ProgressBar、AutoComplete- TextView、TimePicker、ListView等视图设计用户界面时 涉及的元素 ◆ ...

    兼容Android 10+ 系统图片选择器.zip

    4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...

    AndroidGDI基本框架[整理].pdf

    Android GDI 基本框架是 Android 中最复杂的代码之一,涉及到显示缓冲区的操作和管理。GDI 主要管理图形图像的输出,从整体方向上来看,GDI 可以被认为是一个物理屏幕使用的管理器。 GDI 的主要工作是将文本、线条...

    基本Android创建的手机app教务管理系统 包含学生端 教师端 管理员.zip

    4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...

    Android 图片选择、系统拍照、系统裁剪、九宫格图片控件.zip

    4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...

    点餐系统 太原科技大学 Android应用开发 实验.zip

    4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...

    大学毕设,基于Android的车漆配色系统.zip

    4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...

    安卓Android大学生校园论坛交流系统毕业源码案例设计.zip

    4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...

    Cinema Management System in Android(影院管理系统 Android 版).zip

    4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...

    android签到系统.zip

    4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...

    基于Electron的交通时空大数据分析挖掘系统客户端(Android).zip

    4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...

    小方便APP生活工具,纯Android原生开发支持Android9.0系统以上。.zip

    4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...

Global site tag (gtag.js) - Google Analytics