【问题标题】:app:srcCompat does not work for ImageViewapp:srcCompat 不适用于 ImageView
【发布时间】:2016-06-23 23:32:40
【问题描述】:

我正在向一个库项目添加矢量可绘制支持,并使用app:srcCompat 来引用矢量可绘制。唯一可行的视图是 ImageButton,我不知道为什么。

这是我的 build.gradle 的相关部分

android {
  defaultConfig {
    vectorDrawables.useSupportLibrary = true
  }
}

dependencies {
    testCompile 'junit:junit:4.12'

    compile 'com.android.support:appcompat-v7:24.0.0'
    compile 'com.android.support:support-vector-drawable:24.0.0'
    compile 'com.android.support:animated-vector-drawable:24.0.0'
    compile 'uk.co.chrisjenx:calligraphy:2.2.0'
}

这是我的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    >

    <ImageView
        android:id="@+id/iconActive"
        style="@style/Widget.MyCompany.Button.Icon"
        app:srcCompat="@drawable/activities"
        android:layout_marginTop="16dp"
        android:tint="@color/white"
        />

</LinearLayout>

如果我只是将 ImageView 更改为 ImageButton,它就可以工作。按钮也不起作用。

【问题讨论】:

    标签: android android-support-library vector-graphics


    【解决方案1】:

    也许您可以尝试将 ImageView 更改为 AppCompatImageView。于是就变成了:

    <android.support.v7.widget.AppCompatImageView
       android:id="@+id/iconActive"
       style="@style/Widget.MyCompany.Button.Icon"
       app:srcCompat="@drawable/activities"
       android:layout_marginTop="16dp"
       android:tint="@color/white"
    />
    

    【讨论】:

    • 那也行不通。此外,您不必显式使用 AppCompat 视图,如果您在项目中包含该库,它们会根据您运行的 Android 版本自动为您创建。
    • 其实安卓的版本好像没关系。
    • @ChristopherPerry 如果您的活动没有扩展 AppCompatActivity,那么 AppCompat 视图将不会“自动”为您注入。 stackoverflow.com/a/37561933/196486
    【解决方案2】:

    试试这个

        xmlns:app="http://schemas.android.com/apk/res-auto"
    
    
    <androidx.appcompat.widget.AppCompatImageView
                android:id="@+id/img_cross"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:layout_marginRight="10dp"
                app:srcCompat="@drawable/cross" />
    

    【讨论】:

      【解决方案3】:

      为我工作

      xmlns:app="http://schemas.android.com/apk/res-auto"
      
      
          <androidx.appcompat.widget.AppCompatImageView
                      android:id="@+id/img_cross"
                      android:layout_width="30dp"
                      android:layout_height="30dp"
                      android:layout_alignParentRight="true"
                      android:layout_centerVertical="true"
                      android:layout_marginRight="10dp"
                      app:srcCompat="@drawable/cross" />
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-25
        • 1970-01-01
        • 1970-01-01
        • 2015-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-22
        相关资源
        最近更新 更多