问题,我有一个ImageView,其中包含一个圆圈背景和一个在圆圈内的可绘制图标。 ImageView的大小取决于可绘制对象的大小(高度= wrap_content,宽度= wrap_content)。可绘制对象具有固定的高度和宽度。
这意味着当我更改屏幕大小时,ImageView不能正确缩放,因为它始终基于固定的可绘制大小。
ImageView包装在LinearLayout中。我曾尝试修改Left和Right填充值,但这最终以不需要的方式更改了形状。
我的活动XML:
<android.support.v7.widget.CardView
android:id="@+id/create_invoice_cardview"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="@dimen/button_gap_normal"
android:layout_marginTop="185dp"
android:layout_marginEnd="@dimen/margin_width_normal"
android:layout_marginBottom="@dimen/button_gap_normal"
app:layout_constraintBottom_toTopOf="@+id/add_single_cardview"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/capture_receipt_cardview"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingTop="15dp"
tools:context=".HomePageActivity">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/circle_background_green"
android:padding="10dp"
android:src="@drawable/ic_photo_camera_black_24dp" />
<TextView
android:id="@+id/textView3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:autoSizeMaxTextSize="17sp"
android:autoSizeTextType="uniform"
android:paddingRight="5dp"
android:paddingLeft="5dp"
android:paddingTop="7dp"
android:textStyle="bold"
android:gravity="center_horizontal"
android:text="Create Invoice" />
</LinearLayout>
</android.support.v7.widget.CardView>
ic_photo_camera_black_24dp的XML:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="50dp"
android:height="50dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFF"
android:pathData="M12,12m-3.2,0a3.2,3.2 0,1 1,6.4 0a3.2,3.2 0,1 1,-6.4 0"/>
<path
android:fillColor="#FFF"
android:pathData="M9,2L7.17,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2h-3.17L15,2L9,2zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5z"/>
circle_background_green的XML:
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="oval"
xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/complimentGreen" />
</shape>
我希望其中的圆圈和图标根据电话屏幕尺寸或更确切地说根据CardView的高度和宽度缩放。但是,它始终保持相同的大小,该大小取决于ic_photo相机可绘制对象的固定高度和宽度值。