Android三種方式生成矢量圖之VectorDrawable類使用詳解
生成矢量圖VectorDrawable的三種方式
- 第一種:
選中drawable文件夾,右鍵New --> Vector Asset --> 選中Clip Art ,在這里面可以選擇一些矢量圖 ,點(diǎn)擊Next,然后 Finish即可。
- 第二種:(前提:自己有一張svg或psd的圖片)
選中drawable文件夾,右鍵New --> Vector Asset --> 選中Local file ,在這里面選擇自己svg路徑 ,點(diǎn)擊Next,然后 Finish即可。
- 第三種:
自己編寫代碼
靜態(tài)VectorDrawable的使用
配置引用和參數(shù)
gradle文件種按下面配置:
android {
defaultConfig {
...
vectorDrawables.useSupportLibrary = true
}...
dependencies {
...implementation 'com.android.support:appcompat-v7:23.4.0'
}
注意:support:appcompat
必須在23.2以上的引用
在控件中使用
ImageView\ImageButtom
<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" app:srcCompat="@drawable/ic_aaa" />
既然這樣可以顯示,那我們?nèi)绶ㄅ谥?,設(shè)置在Button上面會(huì)怎么樣呢?
<Button android:layout_width="100dp" android:layout_height="100dp" app:srcCompat="@drawable/ic_aaa" />
結(jié)果超出我們的想象,并不能達(dá)到我們預(yù)期的效果。原因是:Button是一個(gè)有不同狀態(tài)的控件,為了程序的嚴(yán)謹(jǐn)性,所以無(wú)效。
那我們對(duì)他的每一個(gè)狀態(tài)進(jìn)行設(shè)置,可不可行呢?
在drawable文件夾下新建xml文件,名為demo
demo代碼如下:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/ic_aaa" android:state_pressed="true"/> <item android:drawable="@drawable/ic_bubble_chart_black_24dp"/> </selector>
然后在Button里面引用:
<Button android:layout_width="100dp" android:layout_height="100dp" android:background="@drawable/demo" />
然后運(yùn)行:
原始狀態(tài):
按下狀態(tài):
ok,這就大功告成了。
這里要說(shuō)明的一點(diǎn),我這邊呢,使用的Android Studio是目前最新的3.6.3,如果AndroidStudio版本較低的話,可能會(huì)出現(xiàn)閃退的現(xiàn)象。這是VectorDrawable的一個(gè)坑點(diǎn)。
解決方法:在相對(duì)應(yīng)的Activity中加入以下代碼即可
static{ AppCompatDelegate .setCompatVectorFromResourcesEnabled(true); }
此篇結(jié)束,下篇文章將繼續(xù)講解Android中使用動(dòng)態(tài)的VectorDrawable
到此這篇關(guān)于Android三種方式生成矢量圖之VectorDrawable類使用詳解的文章就介紹到這了,更多相關(guān)Android VectorDrawable內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android編程實(shí)現(xiàn)加載等待ProgressDialog的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)加載等待ProgressDialog的方法,實(shí)例分析了Android中加載等待類ProgressDialog的具體使用方法,需要的朋友可以參考下2015-12-12Android實(shí)現(xiàn)從activity中停止Service的方法
這篇文章主要介紹了Android實(shí)現(xiàn)從activity中停止Service的方法,結(jié)合實(shí)例形式簡(jiǎn)單分析了Android中Service的注冊(cè)、創(chuàng)建及使用stopService停止Service的方法,需要的朋友可以參考下2016-01-01Android權(quán)限機(jī)制帶來(lái)的一些安全問(wèn)題介紹
這篇文章主要介紹了Android權(quán)限機(jī)制帶來(lái)的一些安全問(wèn)題介紹,本文講解了權(quán)限機(jī)制的缺陷和不足、樹立權(quán)限意識(shí)、越過(guò)權(quán)限機(jī)制等內(nèi)容,需要的朋友可以參考下2015-04-04Android模擬器實(shí)現(xiàn)手機(jī)添加文件到sd卡的方法
這篇文章主要介紹了Android模擬器實(shí)現(xiàn)手機(jī)添加文件到sd卡的方法,詳細(xì)分析了Android模擬器添加文件到sd卡的步驟與相關(guān)技巧,需要的朋友可以參考下2016-06-06AndroidQ(10)黑暗模式適配的實(shí)現(xiàn)
這篇文章主要介紹了AndroidQ(10)黑暗模式適配的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06Android仿zaker用手向上推動(dòng)的特效開發(fā)【推動(dòng)門效果】(附demo源碼下載)
這篇文章主要介紹了Android仿zaker用手向上推動(dòng)的特效,結(jié)合完整實(shí)例形式分析了Android滑動(dòng)切換效果的實(shí)現(xiàn)步驟與相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07Android實(shí)現(xiàn)列表時(shí)間軸
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)列表時(shí)間軸效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05Android應(yīng)用中使用ViewPager和ViewPager指示器來(lái)制作Tab標(biāo)簽
這篇文章主要介紹了Android中使用ViewPager和ViewPager指示器來(lái)制作Tab標(biāo)簽的方法,ViewPager指示器ViewPageIndicator是一個(gè)開源庫(kù),文中舉了一個(gè)仿網(wǎng)易新聞客戶端Tab標(biāo)簽的例子,需要的朋友可以參考下2016-03-03Ubuntu 14.04下創(chuàng)建Genymotion安卓虛擬機(jī)的步驟詳解
Android 模擬器一直以速度奇慢無(wú)比著稱,基本慢到不可用。本文介紹我一直在用的 Genymotion,速度不亞于真機(jī)。而且功能齊全,使用簡(jiǎn)單。下面這篇文章主要介紹了Ubuntu 14.04下創(chuàng)建Genymotion虛擬機(jī)的步驟,需要的朋友可以參考下。2017-03-03