wildma / screenadaptation Goto Github PK
View Code? Open in Web Editor NEW:fire:一种非常好用的 Android 屏幕适配——smallestWidth 限定符适配 https://www.jianshu.com/p/1302ad5a4b04
:fire:一种非常好用的 Android 屏幕适配——smallestWidth 限定符适配 https://www.jianshu.com/p/1302ad5a4b04
公司有两个设备,一台华为平板和一台RK3288的设备,分辨率分别为19201200、1366768。
具体参数如下图:
1,华为平板:
2,RK3288主板:
目前UI的给的设计图是按照19201200来设计的
1,通过PxCook来查看dp标注,使用xxhdpi下的标注,在华为平板(19201200)是能正常的显示。但是在RK3288主板(1366*768)上就显示不完全,宽高的比例都不对。如下图所示:
2,在screenMatch.properties中已经设置base_dp=600,match_dp=600,768
请问,还需要如何配置才能让Rk3288的主板才能适配适配起来吗?
非常感谢大佬分享的这个屏幕适配方案,在手机全是竖屏的情况下效果非常好。但是当手机切换成横屏后,还是读取的是横屏时对应的尺寸,请问一下有什么方法可以读取到手机横屏时宽度对应的尺寸吗?
大佬您好,我的蓝湖设计图是1336x768dp
在大屏的pos机上还有平板,以及手机上都要适配,是横屏的项目
我如何填写base_dp呀
请问设计图是750*1334的设计图该怎么计算?有解决方案吗?
AS4.1不兼容了,能适配一下吗,大佬
看了你的博客 和 别人的问题
#7 (comment)
是不是 只要 修改 screenMatch.properties 文件 base_dp=375 (或者是其他效果图上 的 宽度)
然后把你项目里 默认values/dimens.xml copy到我的工程 然后 用插件 生成就行了?
我建了一个的demo 是这样操作的 我运行了几个虚拟机 大都试了一下 没问题
不知道我的操作 步骤 有没有问题 望大佬指点一下
新起一个平板项目,屏幕分辨率是1366x768,屏幕尺寸是10.6寸,dpi未知,density未知,手头暂无此设备平板A。
但手上有一台屏幕分辨率1920x1080,屏幕尺寸是21.5寸,dpi是160,density是1.0,smallestWidthDp是1080dp的平板B,请问下我怎样填写base_dp=768还是1080,在这个手头上设备平板B,重新生成生成相应的dimens文件,来适配屏幕分辨率是1366x768,屏幕尺寸是10.6寸这台设备?
附问下,平板怎样做适配,我看了文章,不太明白。应该怎样填写base_dp,这个base_dp怎样确定,UI只给一个px的设计图,比如1366x768或者1920x1080,其它信息不知。我看到base_dp跟设备的smallestWidthDp、dpi、density有关的?
/获取sp值/
float pxValue = getResources().getDimension(R.dimen.sp_15);//获取对应资源文件下的sp值
int spValue = ConvertUtils.px2sp(this, pxValue);//将px值转换成sp值
mTvShowParams.setTextSize(spValue);//设置文字大小
/*获取dp值*/
float pxValue2 = getResources().getDimension(R.dimen.dp_360);//获取对应资源文件下的dp值
int dpValue = ConvertUtils.px2dp(this, pxValue2);//将px值转换成dp值
按照这个动态适配,字体显得很大,大神碰到过吗
UI在720x1280上做的图,其中一个按钮的宽高分辨为:宽720px,高为100px,字体大小为30px,
因为基准是在480*320
手机不论是720x1280还是1080x1920的上面
假如要是在UI在1080x1920上做的图 宽720px,高为100px,字体大小为30px
手机不论是720x1280还是1080x1920的上面
跟手机的分辨率没有关系,手机会去不同的文件夹去寻找吗,是这个意思吗
华为P9是手动控制导航栏是否显示的。当导航栏隐藏的时候,适配方案是1080x1920的。在进入应用后,显示导航栏,再进入另一个界面,却又适配的另外的方案,导致界面差距太大。这样的情况如何解决呢?大佬
分辨率 2160*1080
dpi 402
无法适配
像素大厨 选择xxxhdpi 显示的就是最小宽度吗
是直接把 dimens.xml 放在所有组件都引用的 common组件中 还是 所有module都需要一份?组件化的项目资源名字有前缀要求 每个module都放一份 资源名都一样。
如题
大佬如何只适配横屏手机和平板的同一套布局
实测有几款华为的是这样,所以适配不到,不知道作者有没有相关发现。
同理,这套dp适配方案一定能按swwidth索引到相关资源吗?
如题,这样做的好处有两个:
你好,这个是以720X1280的宽度基准来适配, 我测试好像高度好像不能完全适配。比如说720X1280的屏幕像华为的有些机子真实的屏幕高度并不是这个有虚拟导航栏,我设置高度为640dp 并不能兼容,能告知下这个是不兼容 还是智能用ScrollView 嵌套超出
HUAWEI NOH-AL00 Android 10
屏幕宽 -----> widthPixels =1152
屏幕高 -----> heightPixels =2376
屏幕density -----> density =2.55
屏幕widthDP -----> widthDP =451.7647
屏幕heightDP -----> heightDP =931.7647
屏幕smallestWidthDP -----> smallestWidthDP =451.7647
应用如果是竖屏的情况下没问题,但如果屏幕旋转成横屏(如平板),则底部的按钮还是显示的是竖屏时的宽度.
高度不需要做适配吗
出于我的技术水平问题,在看到您的文章后感觉您对适配方面的知识挺好的,就来问下dp转px的问题
比如说我在如下信息的屏幕上:
屏幕的宽度(单位:px): 1200
屏幕的高度(单位:px): 1600
屏幕密度(单位:DPI): 160
屏幕密度density(DPI / (160像素/英寸)): 1.0
base_dp(width/density): 1200.0
此时1dp=1px
我通过代码动态设置时用下面这个方法没什么问题:1200dp可以刚好充满屏幕
/**
* dp值转换成px值
*
* @param dpValue dp值
* @return px值
*/
public static int dp2px(Context context, final float dpValue) {
final float density= context.getResources().getDisplayMetrics().density;
return (int) (dpValue * density+ 0.5f);
}
//---------------------------------------------------------------------------------------------------------
换设备
屏幕的宽度(单位:px): 1080
屏幕的高度(单位:px): 1920
屏幕密度(单位:DPI): 420
屏幕密度density(DPI / (160像素/英寸)): 2.625
base_dp(width/density): 411.42856
我通过代码动态设置时(用上面dp2px方法)此设备下的
1200dp=3150.5px 远远超出了这个屏幕1080的宽,此时其他的dp也不适用了,通过代码适配就显得有问题了
请问在通过代码动态设置进行适配时
1.这个dp转px 是否和base_dp有关?
2.还是和屏幕宽度比有关?
我现在用的是2,dp转px改成了:
(dpValue * density+ 0.5f)*当前设备宽/base_dp屏幕宽度;
请问我这么做合理吗?
插件提示成功,但是生成的values-sw320dp,这些文件里面都没有东西
xml布局都是按照横屏去写的,UI 给的 距屏幕 左边的dp值都有,设置成按照base_dp=375 生成的dimens 去设置 不对。应该怎么去弄?
屏幕最小宽度的,设计图的基准的屏幕最小宽度是怎么计算的,demo中为什么是360,
假如UI用的基准尺寸是750*1334,那么我的smallestWidth是多少,也是360吗,还是每个手机都不一样,那我应该用smallestWidth的作为基准
请教一下
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.