代码之家  ›  专栏  ›  技术社区  ›  Michael Osofsky

形状的笔划不显示

  •  0
  • Michael Osofsky  · 技术社区  · 6 年前

    我定义了 Drawable 使用笔划,但该笔划不显示在UI上。

    <ImageView
        android:id="@+id/otherSecurityLaneImageView"
        android:layout_width="130dp"
        android:layout_height="52dp"
        android:layout_marginStart="10dp"
        android:padding="10dp"
        android:background="@drawable/ll_rounded_corners_6dp"
        android:backgroundTint="@color/white"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" 
        tools:src="@drawable/poi_icon_security_lane_clear" />
    

    以下是方法 @drawable/ll_rounded_corners_6dp 定义如下:

    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
        <stroke android:width="20dp" android:color="@color/ll_red" />
        <corners android:radius="6dp" />
    </shape>
    

    我希望在 ImageView 在Android Studio设计视图中,但没有显示。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Andrew Trubin MilapTank    6 年前

    您可以使用各种组合:

    app:backgroundTint="@android:color/holo_green_light"
    app:backgroundTintMode="multiply"
    

    ll\U rounded\U corners\U 6dp。xml:

    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
        <stroke android:width="20dp" android:color="@android:color/holo_red_dark" />
        <corners android:radius="6dp" />
        <solid android:color="@android:color/holo_blue_dark" />
    </shape>
    

    activity\u main。xml:

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout 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:background="@android:color/darker_gray"
        tools:context=".MainActivity">
    
        <ImageView
            android:id="@+id/ImageView1"
            android:layout_width="150dp"
            android:layout_height="60dp"
            android:layout_marginStart="10dp"
            android:layout_marginTop="10dp"
            android:background="@drawable/ll_rounded_corners_6dp"
            android:padding="10dp"
            android:src="@mipmap/ic_launcher_round"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
        <ImageView
            android:id="@+id/ImageView2"
            android:layout_width="150dp"
            android:layout_height="60dp"
            android:layout_marginStart="10dp"
            android:layout_marginTop="10dp"
            android:background="@drawable/ll_rounded_corners_6dp"
            android:padding="10dp"
            android:src="@mipmap/ic_launcher_round"
            app:backgroundTint="@android:color/holo_green_light"
            app:backgroundTintMode="multiply"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@id/ImageView1" />
    
        <ImageView
            android:id="@+id/ImageView3"
            android:layout_width="150dp"
            android:layout_height="60dp"
            android:layout_marginStart="10dp"
            android:layout_marginTop="10dp"
            android:background="@drawable/ll_rounded_corners_6dp"
            android:padding="10dp"
            android:src="@mipmap/ic_launcher_round"
            app:backgroundTint="@android:color/holo_blue_light"
            app:backgroundTintMode="screen"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@id/ImageView2" />
    
    </android.support.constraint.ConstraintLayout>
    
        2
  •  2
  •   Android Geek    6 年前

    我试过你的密码。您的可绘制代码很好。

    但要显示stroke,需要对Layout xml代码进行一些更改,

    只需删除 android:backgroundTint="@color/white" 由于背景色调不出现笔划颜色,其主要原因是 backgroundTint 将颜色设置为ImageView的背景。

    如果需要使用 背景色调 可以使用与笔划颜色相同的颜色。

    请尝试以下代码:

    <ImageView
            android:id="@+id/otherSecurityLaneImageView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:padding="10dp"
            android:background="@drawable/ll_rounded_corners_6dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            android:src="@mipmap/ic_launcher" />
    

    我希望这对你有用。

        3
  •  0
  •   Michael Osofsky    6 年前

    经过反复试验,我得到了 stroke 通过删除 android:backgroundTint 来自的参数 ImageView 。我找不到关于它的文档。我也尝试了不同的 android:tintMode 但是他们都没有帮助。