gpt4 book ai didi

Android 根据屏幕尺寸缩放文本和图像(手机与平板电脑)

转载 作者:太空狗 更新时间:2023-10-29 13:23:17 26 4
gpt4 key购买 nike

我对px、dp、sp的区别比较了解。问题是,当我在屏幕上放置一个 TextView (或 ImageView )时,dpi 是无关紧要的。在 160 dpi 的 3 英寸高屏幕上,80 像素的文本大小将是 1/2 英寸,或高度的 1/6。在 160 dpi 的 7 英寸高屏幕上,它仍然是 1/2 英寸,但现在是高度的 1/14。

问题是,使用 dp(或 sp),在手机上看起来不错的东西在平板电脑上就消失了。

有没有办法指定屏幕尺寸的分数,比如百分比?

最佳答案

我不确定您是否可以按百分比指定大小,但为什么不在 dimen.xml 文件中为屏幕定义不同的尺寸。很难对所有屏幕尺寸使用相同的 dp 和 sp 值。

不同的dimens.xml需要创建不同的资源文件夹

 res/values-ldpi/dimens.xml
res/values-mdpi/dimens.xml
res/values-hdpi/dimens.xml

接下来向这些文件添加一些值

 <!-- in values-ldpi/dimens.xml -->
<dimen name="textSize">25dip</dimen>

<!-- in values-mdpi/dimens.xml -->
<dimen name="textSize">20dip</dimen>

最后在布局文件中引用尺寸:

<TextView
android:layout_toRightOf="@id/at"
android:layout_below="@id/hw"
android:textSize="@dimen/textSize"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

编辑:

如果你想将图像的高度设置为屏幕尺寸的 1/10,你需要在 View 容器中使用 android:layout_weight 属性。检查下面的示例。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_weight="1"
>

<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/imageView"
android:background="@drawable/ic_launcher" />
</LinearLayout>

<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:weightSum="1"
android:layout_weight="9"
>
</LinearLayout>

</LinearLayout>

关于Android 根据屏幕尺寸缩放文本和图像(手机与平板电脑),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25407685/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com