Java Android studio图标和文本比例

Java Android studio图标和文本比例,java,android,xml,android-studio,mobile,Java,Android,Xml,Android Studio,Mobile,我尝试使我的应用程序具有不同的分辨率和屏幕大小。对于布局,我使用权重,效果很好,但文本和图标有问题(androidstudio中的矢量资源)。实际上,我对文本(例如20sp)和图标(例如20dp)使用常量值,但当应用程序在另一个移动设备中打开时,图标太小或太大。是否可以在xml文件中按屏幕大小进行缩放 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://sc

我尝试使我的应用程序具有不同的分辨率和屏幕大小。对于布局,我使用权重,效果很好,但文本和图标有问题(androidstudio中的矢量资源)。实际上,我对文本(例如20sp)和图标(例如20dp)使用常量值,但当应用程序在另一个移动设备中打开时,图标太小或太大。是否可以在xml文件中按屏幕大小进行缩放

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.hgyghyfghyu.apkana40.TrainerMenu"
android:orientation="vertical"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="10dp">

//
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="2"
    android:background="#000000"
    android:layout_marginBottom="10dp"
    android:id="@+id/colorsdialogbtn">
</LinearLayout>

//
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="2"
    android:layout_marginBottom="10dp"
    android:layout_marginTop="10dp"
    android:orientation="horizontal">
    //
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#000000"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:id="@+id/trainermenugroupsbtn">
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/trainermenugroupsicon"
                android:tint="#FFFFFF"
                android:layout_centerInParent="true"
                android:src="@drawable/trainermenugroupsicon"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_below="@+id/trainermenugroupsicon"
                android:textSize="25dp"
                android:textStyle="bold"
                android:text=""
                android:textColor="#FFFFFF"/>
        </RelativeLayout>
    </LinearLayout>
    //
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#000000"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:id="@+id/trainermenutrainersbtn">
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/trainermenutrainersicon"
                android:tint="#FFFFFF"
                android:layout_centerInParent="true"
                android:src="@drawable/trainermenutrainersicon"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_below="@+id/trainermenutrainersicon"
                android:textSize="25dp"
                android:textStyle="bold"
                android:text=""
                android:textColor="#FFFFFF"/>
        </RelativeLayout>
    </LinearLayout>

</LinearLayout>

//
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:orientation="horizontal">
    //
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2"
        android:background="#000000"
        android:id="@+id/trainermenuadbtn"
        android:layout_marginRight="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginBottom="10dp">
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:paddingTop="10dp">
            <ImageView
                android:id="@+id/trainermenuadicon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:tint="#FFFFFF"
                android:src="@drawable/trainermenuadicon"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/trainermenuadicon"
                android:layout_centerHorizontal="true"
                android:textSize="15dp"
                android:text=""
                android:textStyle="bold"
                android:textColor="#FFFFFF"/>
        </RelativeLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2"
        android:orientation="horizontal"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp">
        //info
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#000000"
            android:id="@+id/trainermenuinfobtn"
            android:layout_marginRight="10dp"
            android:layout_marginBottom="10dp">
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent">
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:tint="#FFFFFF"
                    android:src="@drawable/trainermenuinfoicon"
                    android:layout_centerInParent="true"/>
            </RelativeLayout>
        </LinearLayout>


        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#000000"
            android:id="@+id/trainermenusettingsbtn"
            android:layout_marginLeft="10dp"
            android:layout_marginBottom="10dp">
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent">
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:tint="#FFFFFF"
                    android:layout_centerInParent="true"
                    android:src="@drawable/trainermenusettingicon"/>
            </RelativeLayout>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

//
//
//
//
//
//
//信息

如果要根据屏幕定义文本大小和图像大小,请根据屏幕大小创建值文件夹并放置dimen.xml文件并定义文本大小和图像大小,请在布局中使用这些值。 1) 价值观

2) hdpi值(320x480、480x800)

3) 大hdpi值(600x1024)

4) 值xlarge(720x1280、768x1280、800x1280、Nexus7、Nexus10)

5) values-sw480dp(5.1英寸WVGA屏幕)

6) xhdpi值(Nexus4,Galaxy Nexus)

并为hdpi、xlarge等放置不同的图像。只创建所需的文件夹。
有关详细信息,请查看

嗯,我认为您没有一个好的
xml
设计…如果您的xml设计良好,您的图片将自动缩放我将xml文件放入我的帖子中。你能告诉我哪里不对吗?让我看看,请稍等。是的,我认为你不应该对你的
列车组使用
相对值,你需要在其他元素中使用相同的值,
LinearLayouts
具有
weight
属性,您的图像将自动缩放,因此无法获取屏幕大小并将其与xml中的android:scaleX=”“一起使用?不,也并非无法获取屏幕大小,您可以通过编程获得屏幕大小,然后通过编程使用scaleX。您认为在OnCreate中从file.java设置图像大小是个好主意吗?嗯。。。不,这不是个好主意。。。如果可以避免的话,你不需要这样做……不要让设备工作得更正常