所以我有一个快乐的小形状:
<shape android:shape="oval">
<size android:width="20dp"
android:height="20dp"/>
<solid android:color="#FF88EE88"/>
<stroke android:color="#FFEE8800" android:width="2dp"/>
</shape>
您会看到,它非常丰满,厚实,小巧,非常可爱。
现在,当我尝试将其作为某些View的背景时,<size/>
会缩放到该View的大小,但其<stroke/>
保持不变,这意味着在某些View上几乎看不到它500x500视图。
在Android中用尺寸调整笔触宽度比例的正确方法(如果有)是什么?
答案 0 :(得分:2)
当您使用xml文件时,必须尝试使用不同的宽度和高度测量来运行,以使其适合您的Background drawable。如下代码:
class-helper
或最简单,最简单的方法来制作此视图的.png图像,并将其放在“某些视图的背景”中。
答案 1 :(得分:2)
将可绘制形状转换为可绘制向量:
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF88EE88"
android:pathData="M1 12a11 11 0 1 1 0 0.0001"/>
<path
android:strokeColor="#FFEE8800"
android:strokeWidth="2"
android:pathData="M1 12a11 11 0 1 1 0 0.0001"/>
</vector>
现在,无论以任何尺寸使用它,它都能以任意dpi完美缩放:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:layout_width="36dp"
android:layout_height="36dp"
android:background="@drawable/circle_with_stroke"/>
<FrameLayout
android:layout_width="240dp"
android:layout_height="240dp"
android:background="@drawable/circle_with_stroke"/>
</FrameLayout>
答案 2 :(得分:1)
you can use this library to make text and layout design responsive.
just add this dependency in build.gradle(app level).
///////////////////////////////////////////////// ////////////
dependencies {
implementation 'com.intuit.sdp:sdp-android:1.0.6'
}
///////////////////////////////////////////////// //////////////
dependencies {
implementation 'com.intuit.ssp:ssp-android:1.0.6'
}
始终喜欢将ssp用于文本大小,而将sdp用于页边距,填充和布局大小。
之后,二维类将添加到您的项目中。
希望它可以解决您的问题。
答案 3 :(得分:1)
您可以为每个dpi创建单独的dimins文件,并使用基于dpi具有不同值的通用变量。
将IStructuredSelection
放入每个dimens.xml
文件夹中
在每个维度中定义一个具有相同名称的公用变量,并分配适当的值。
values
在形状xml中使用该变量
<dimen name="your_value">2dp</dimen>