嘿,伙计们,我使用const {宽度,高度} = 尺寸.get('窗口');
根据屏幕宽度大小调整我的字体。像这样使用....
fontSize:width/24
它在iPhone和android设备上看起来不错,比如5.5英寸的设备,但在我的Galaxy s9上看起来很糟糕。我想根据屏幕设置我的字体,它可以自行调整..我该怎么做
为了访问设备的像素密度和字体比例,您可以根据文档从PixelRatio中受益。
如文档所示,PixelRatio.get()为您提供设备像素密度:
var dynamic_fontSize = 20;
if(PixelRatio.get() === 1) { // mdpi Android devices
dynamic_fontSize = 12;
} else if(PixelRatio.get() === 1.5) { // hdpi Android devices
...
}
else { ...
另一个想法是使用roundToNearestPixel()来利用布局大小。假设您想要调整元素的大小,使其在dp中占据屏幕宽度的98%,在dp中占据屏幕高度的10%:
export const widthPercentageToDP = widthPercent => {
const screenWidth = Dimensions.get('window').width;
// Convert string input to decimal number
const elemWidth = parseFloat(widthPercent);
return PixelRatio.roundToNearestPixel(screenWidth * elemWidth / 100);
};
export const heightPercentageToDP = heightPercent => {
const screenHeight = Dimensions.get('window').height;
// Convert string input to decimal number
const elemHeight = parseFloat(heightPercent);
return PixelRatio.roundToNearestPixel(screenHeight * elemHeight / 100);
};
此线程为您提供了一个清晰的示例:https://stackoverflow.com/a/35074379/4687359
使用像这样的响应式图书馆,可以更好地处理事情。
反应原生大小问题
例如:
import { scale, verticalScale, moderateScale } from 'react-native-size-matters';
const Component = props =>
<View style={{
width: scale(30),
height: verticalScale(50),
padding: moderateScale(5)
}}/>;
因此,所有设备看起来都会更好。使用verticalScale定义与设备高度相关的内容。规模可以用于正常的事情..然后有一个自定义选项moderateScale,您也可以手动定义缩放比例。
有关更多详细信息,请参阅:扩展React Native应用程序
PS:还有其他选项,您可以手动定义自定义类以获取PixelRatio和所有内容。但这是一种直接的方法。
参考像素比率法
那么最好的选择是使用vmax和vmin单位。
vmin: 最小边的 1/100, vmax: 最大边的 1/100
看看这里
问题内容: 它由9个框组成,中间带有文本。我已经制作了框,以便它们可以随着屏幕大小的变化而调整大小,以便始终保持在同一位置。 但是,即使我使用百分比,文本也不会调整大小。 如何调整文本的大小,使其在整个页面上始终具有相同的比例? 这是处理多种分辨率的合适解决方案吗?还是我应该在CSS中进行很多检查并为每种媒体类型设置许多布局? ``` html, body { } #launchmain { }
我正在尝试将文本放入一个有限的空间(黄色容器)。如何在Android中解决这个问题? 在iOS中,该问题通过adjustsFontSizeToFit={true}解决。 我的代码:
我正在使用一个库从url获取图像并将其作为位图图像保存到缓存中。但是当我检索该图像时,它非常小。如何根据手机屏幕增加位图图像的高度和宽度?这是创建位图的类。
我想根据响应本机中的屏幕宽度更改。 我想做这样的东西,预期的结果是在向添加数字时变得更小。 我尝试的资源: React Native响应字体大小 https://reactnativeexample.com/responsive-fontsize-based-on-screen-size-of-the-device-in-react-native/ 更多的不起作用。
我是一个新的android开发和我正在尝试创建和应用程序与网格菜单,菜单。 当前依赖项:compile fileTree(目录:“libs”,include:['*.jar'])testCompile“junit:junit:4.12”编译组:“org.apache.httpcomponents”,名称:“httpclient-android”,版本:“4.3.5.1”编译组:“cz.mseber
我有一个JFrame,其中包含一个面板。我还向面板添加了。到目前为止,我所做的是在我的框架上使用来对调整窗口大小做出反应。 下面是我的代码片段: 当更改框架的大小时,的大小可以完全调整。但是当我最大化我的框架,图表面板不会改变它的大小!它保持在最大化之前的时刻。因此,当我再次“取消最大化”我的框架时,图表面板被最大化,这导致了问题,图表将不再适合图表面板。所有这些调整尺寸的事情似乎都“落后一步”.