2017-08-10 57 views
5

我有一個在Motorolla預棒棒糖手機上繪製矢量繪製問題。我用Moto g和其他KitKat測試了它。每次我開始應用程序時,一些圖標看起來損壞,有些圖標完全沒有。每次發射後,它們都以不同的方式損壞。在聯想,三星,ASOP模擬器和其他JB +直到牛軋糖一切正常。只有摩托羅拉手機無法很好地提供支持庫的矢量繪圖。有人有同樣的問題嗎?Android - 支持Motorolla矢量繪圖

+2

請張貼您的代碼如何添加向量 – Lokesh

+0

已經有這個問題的答案https://stackoverflow.com/questions/34417843/how-to-use-vector-drawables-in-android-api-lower-21 – Lokesh

+0

我我正在使用它作爲文檔說。只有摩托羅拉有這樣的問題。其他的棒棒糖設備都可以使用 – user3280437

回答

2

向量Drawables也支持TextView的drawableLeft屬性。如果你想使用向量與ImageView的 去這個鏈接Android Studio 1.4

<ImageView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
app:srcCompat="@drawable/icon" 
+0

https://medium.com/@ferrand.d/can-you-and-should-you-use-vector-drawables-a-cheatsheet-32a2e1cc2ecf –

2

嘗試添加以下內容的onCreate()應用程序類的方法:

AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); 

來自官方的文檔:

啓用後,AppCompat可以攔截框架中的一些可繪製的通貨膨脹,這可以使DrawableContainer資源中的矢量繪圖隱式膨脹。
然後,您可以在ImageView上的android:src或TextView上的android:drawableLeft等地方使用這些可繪製對象。
此功能默認爲禁用,因爲啓用它可能會導致內存使用問題以及更新配置實例時出現問題。
如果您手動更新配置,那麼您可能不想啓用此配置。你被警告了。

+0

已經嘗試過這個沒有運氣 – user3280437

1

在我的研究中,我發現了兩種支持在棒棒糖設備上繪製矢量的方法。你可以試試這個。

可以支持與矢量繪製的所有設備與AppCompatImageView

<android.support.v7.widget.AppCompatImageView 
       app:srcCompat="" // your drawable declaration 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content"/> 

android.support.v7.appcompat:srcCompat

設置可抽拉,因爲這ImageView的內容。允許在舊版本平臺上運行時使用矢量繪製的 。

需要支持庫23.4.0或最新

來源:https://developer.android.com/reference/android/support/v7/widget/AppCompatImageView.html#attr_android.support.v7.appcompat:srcCompat

另一種方式是在搖籃配置矢量繪製設置。在你的Gradle中包含下面的代碼。

android { 
    defaultConfig { 
    vectorDrawables.useSupportLibrary = true 
    } 
} 

使用srcCompatImageView

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:srcCompat="@drawable/ic_add" /> 

來源:https://android-developers.googleblog.com/2016/02/android-support-library-232.html

希望它可以幫助你:)

0

試試這個::: -

Drawable date = AppCompatResources.getDrawable(itemView.getContext(), R.drawable.ic_date_range_black_24dp); 
etDeliveryDate.setCompoundDrawablesWithIntrinsicBounds(date, null, null, null); 
+0

只有摩托羅拉 – user3280437

+0

@ user3280437不工作你是否已經從xml中刪除了src或srcCompat可繪製路徑? –

+0

你是什麼意思? – user3280437