根据CardView大小缩放ImageView不可绘制

时间:2019-07-07 01:30:06

标签: android android-studio imageview android-drawable

问题,我有一个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相机可绘制对象的固定高度和宽度值。

0 个答案:

没有答案