在 Android 中将文本视图和图像作为一组进行缩放

Scaling textviews and images as one group in Android

我正在尝试缩放一组图像和 textView,以便它们在平板电脑和 phones 上适当缩放。

以上看起来不错。这就是我想要实现的表格以及任何其他 phone 因为它只适用于 Nexus S 4" 480x800

问题出现在任何其他屏幕尺寸上:

我想缩放文本和图像并将它们保持在圆圈内。

我的主要布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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.example.balazs_gerendai.intentopener.MainActivity">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/circle" />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:gravity="center|top">

        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="192dp"
            android:text="Hello" />
        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:src="@drawable/circle_placeholder"/>
        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="&lt;Username>" />
    </LinearLayout>
</RelativeLayout>

圈子:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:innerRadius="100dp"
    android:shape="ring"
    android:thickness="10dp"
    android:useLevel="false">

    <solid android:color="#ababf2" />

</shape>

你可以这样做:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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.example.balazs_gerendai.intentopener.MainActivity">

<!--<ImageView-->
    <!--android:layout_width="match_parent"-->
    <!--android:layout_height="match_parent"-->
    <!--android:src="@drawable/circle" />-->
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/circle"
    android:gravity="center">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_gravity="center"
android:layout_height="wrap_content">
    <TextView
        android:id="@+id/textView"
        android:layout_centerHorizontal="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello" />
    <ImageView
        android:layout_below="@+id/textView"
        android:id="@+id/image"
        android:layout_centerHorizontal="true"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@drawable/circle_place"/>
    <TextView
        android:id="@+id/textView2"
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="&lt;Username>" />
</RelativeLayout>
</LinearLayout>
</RelativeLayout>

使用下面的布局

<RelativeLayout 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.example.balazs_gerendai.intentopener.MainActivity" >

    <ImageView
        android:id="@+id/img_circle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:minHeight="250dp"
        android:minWidth="250dp"
        android:src="@drawable/circle" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/circle_placeholder" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/imageView1"
        android:layout_alignLeft="@+id/imageView1"
        android:layout_alignRight="@+id/imageView1"
        android:layout_marginBottom="10dp"
        android:gravity="center_horizontal"
        android:text="Hello"
       />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/imageView1"
        android:layout_alignLeft="@+id/imageView1"
        android:layout_alignRight="@+id/imageView1"
        android:layout_marginTop="10dp"
        android:gravity="center_horizontal"
        android:text="&lt;Username>"/>

</RelativeLayout>