我想將某些vectorDrawables設置爲Android Studio中的ImageView。如何以編程方式將VectorDrawable設置爲ImageView的圖像
我可以很容易地設置png和jpg,但是當我想設置VectorDrawable時,它不能在imageview上工作。
img.setImageResource(R.drawable.ic_home);
ic_home是VectorDrawable,此代碼不起作用。
我想將某些vectorDrawables設置爲Android Studio中的ImageView。如何以編程方式將VectorDrawable設置爲ImageView的圖像
我可以很容易地設置png和jpg,但是當我想設置VectorDrawable時,它不能在imageview上工作。
img.setImageResource(R.drawable.ic_home);
ic_home是VectorDrawable,此代碼不起作用。
根據官方android developer blog,vectorDrawables在運行時的setImageResource()方法沒有更改。
如果您要改變在運行時可繪,你就可以使用相同的 setImageResource() 方法之前 - 無變更。使用AppCompat和應用程序:srcCompat 是將矢量繪圖集成到您的 應用程序中最簡單的方法。
有關更多詳細信息,請查看Google Developer的漂亮文章AppCompat — Age of the vectors。
如果您關心的是向後兼容性,那麼您應該使用AppCompatImageView
代替pf圖像視圖。通過下面的代碼。
<android.support.v7.widget.AppCompatImageView
android:id="@+id/iv_about"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
/>
的Java
AppCompatImageView image = (AppCompatImageView) findViewById(R.id.iv_about);
image.setImageResource();
而且它的投放app:srcCompat
角度。
如果你想使用矢量繪圖資源(少於或API 21以上)只要做到以下幾點:
設置圖像編程方式(例如,在您的活動):
imageView.setImageResource(R.drawable.ic_left_arrow_blue);
或XML:
app:srcCompat="@drawable/your_vector_name"
在您的應用程序的build.gradle
你需要包括:
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
和爲少於21 API支持向量,添加以下onCreate
:
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
我在再循環器視圖的載體我使用img.setImageResource(R.drawable.ic_home)其沒有工作正常像一些其他圖像形成一些項目的回收查看然後我用img.setImageDrawable(activity.getResources()。getDrawable(R.drawable.ic_home))這工作。
使用android.support.v7.widget.AppCompatImageButton,android.support.v7.widget.AppCompatImageView, android.support.v7.widget。AppCompatTextView代替的ImageButton,ImageView的等,如果使用向量型圖像。
主要用於自定義視圖。
閱讀https://blog.stylingandroid.com/vectordrawables-part-1/ –
我已經在這裏回答,可能會有幫助。你現在可以改變矢量繪製。 http://stackoverflow.com/a/42281780/4517450 –