我创建了不同的layouts (layout, layout-small, layout-normal, layout-large, layout-xlarge)
和values (values, values-ldpi, values-mdpi, values-nodpi, values-hdpi, values-xhdpi)
。我在我的应用中有一个活动来显示文字。我滚动文字。我在values-mdpi
中设置了文字大小的值。但是,当我在模拟器3.2"QVGA(ADP2)(320 x 480:mdpi)
上运行我的应用程序时滚动文本工作。但是当我在模拟器5.1"WVGA(480 x 800:mdpi)
上运行我的应用程序时,半屏上的所有文本和文本的大小都很小。我认为android选择布局取决于大小和文本大小取决于values-mdpi
。我希望大屏幕上的文字大小虽然属于mdpi
。
我的整个应用都处于纵向模式。而且ldpi和hdpi也是如此。请提供一般解决方案。
答案 0 :(得分:2)
如果您为所有设备使用相同的设计结构,那么您只使用纵向版本您不需要为每个像素密度添加四种不同的布局。
创建支持不同屏幕尺寸的android值文件夹。
此处为7英寸Android设备的第一个文件夹,其中包含ANDROID 3.1或更低版本。第二个是7英寸设备,Android版本大于3.1。 命名约定sw600表示最小宽度为600.因此该文件夹的宽度为600到720.因此创建 values-sw480dp 和 values-sw320 为dimens.xml文件添加值
Android运行时会自动从相应的文件夹中选择值。
答案 1 :(得分:1)
在res文件夹中创建values-mdpi
,values-w360dp-mdpi
等文件夹。
在两个文件夹上创建dimens.xml。
并将其粘贴到values-mdpi dimens.xml
中的代码下方<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="textsize">14sp</dimen>
</resources>
并将其粘贴到值-w360dp-mdpi dimens.xml
中的代码下方<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="textsize">18sp</dimen>
</resources>
然后在您的活动上应用文字大小
android:textSize="@dimen/textsize"
答案 2 :(得分:1)
而不是你的values (values, values-ldpi, values-mdpi, values-nodpi, values-hdpi, values-xhdpi)
,
它们指定了每个密度的文本字体大小。
根据屏幕尺寸使用文字大小规格,如下所示:values (values, values-small, values-normal, values-large, values-xlarge)
为了获得更好的各种设备效果,您可以将密度与屏幕尺寸相结合,如下所示:values-normal-mdpi
这就是全部
答案 3 :(得分:1)
只需创建layout, layout-small, layout-large, layout-xlarge
等布局文件夹,然后创建values, values-ldpi, values-mdpi, values-hdpi, values-xhdpi
等值文件夹。然后,您可以根据高度或宽度创建值文件夹,并且属于ldpi
或mdpi
,即values-w360dp-mdpi or values-h600dp-mdpi
。然后android会根据屏幕尺寸和相应高度或宽度的值自动选择布局。
答案 4 :(得分:0)
试试这个
步骤:1
首先在res
文件夹=&gt; values =&gt; dimensions.xml =&GT;创建dimensions.xml
文件到values folder
,创建如下代码,具体取决于文本大小
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="textsize">8sp</dimen>
<dimen name="text">10sp</dimen>
<dimen name="comments">7sp</dimen>
</resources>
步骤:2 在java文件中写下这一行
TextView textviewtwo = (TextView)findViewById(R.id.sponsertwo_txt);
textviewtwo.setText("brought to you by");
textviewtwo.setTextSize(TypedValue.COMPLEX_UNIT_PX,
getResources().getDimension(R.dimen.textsize));
// in place of textsize use text and comments what ever we want depending on size. use like text size adjust automatically in all devices
答案 5 :(得分:0)
实际上,您不需要创建所有这些布局目录来处理文本大小。只需坚持正常的(布局),并为要支持的每个分辨率创建不同文本大小的不同值目录。所以你必须在其他值目录中添加文本大小。
在运行时,Android会选择正确的文字大小。
答案 6 :(得分:0)
尝试在AndroidManifest.xml中添加此内容
<supports-screens android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true"/>
答案 7 :(得分:0)
使用此代码,它的工作原理基于屏幕尺寸:
Display display = getWindowManager().getDefaultDisplay();
int displayWidth = display.getWidth();
yourTextView.setTextSize(TypedValue.COMPLEX_UNIT_PX,(float)(displayWidth * 6/100));