本文講的是vectors for all (最終篇)【譯】,
這是關注 android 的vectordrawable系列博文中的第三篇,之前的文章是vectors for all (almost),在此之前的另外一篇是vectors for all (slight return)。這兩篇文章向我們展示了 vectordrawable 的可用性有了很大的提公升,但是對 vectordrawablecompat 的熱切等待一直落空。直到2023年2月24號,google 發布了 android support library 23.2 版本,其中就包含了一直期待的 vectordrawablecompat 。
因此,讓我們看一下,我們需要對之前文章中使用的專案做些什麼樣的改動,以便可以使用 vectordrawablecompat 。首先要做的事就是修改我們的build.gradle 檔案,正如 chris 在他的文章中介紹的那樣。
plugin:
android
aaptoptions
buildtypes}}
dependencies
from:
'../config/static_analysis.gradle'
這樣做的實質是關閉了過去從 vectordrawable 自動生成 png 資源的方式。
<?xml version="1.0" encoding="utf-8"?>
xmlns:android=
""""
xmlns:tools=
""android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:paddingbottom=
"@dimen/activity_vertical_margin"
android:paddingleft=
"@dimen/activity_horizontal_margin"
android:paddingright=
"@dimen/activity_horizontal_margin"
android:paddingtop=
"@dimen/activity_vertical_margin"
tools:context=
".mainactivity"
>
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:contentdescription=
"@null"
"@drawable/svg_logo2"
/>
如果我們在一台 6.0 的裝置上執行,一切看起來都不錯,正如我們所預期的那樣:
如果我們在乙個 4.4 的模擬器上執行這個程式,看起來幾乎一致。
animatedvectordrawablecompat 又是怎樣的呢?讓我們再次看看 styling android series on vectordrawable 中的例子是如何做的。
首先這是乙個靜態的 android 標誌:
正如我們所期待的那樣,由於它是乙個靜態的_vectordrawable,所以它的效果看起來很棒。當我們給它新增動畫之後會發生什麼呢?(這些例子全執行在 android 4.4 的 genymotion 模擬器上):
要知道這可是在模擬器上而不是真機上執行。顯然,低配置的機器上幀率會差一些,同樣,當我們適配更早的 android 版本時,也會遇到許多類似的情況,但不管怎麼說,這個結果是令人振奮的。
trimpath
動畫表現的怎麼樣呢?
再一次,trimpath
的效果也是令人嘆服的——它達到了預期的效果,並且相當流暢。
不幸的是,上一系列的最後乙個例子沒生效。這是因為它是直接根據pathdata
來執行動畫的,正如 chris 提到的,目前animatedvectordrawablecompat 並不支援這種方式。然而 chris 使用了 「目前」 這個詞——因此在這個庫將來的某個版本中,可能會支援這種非常強大的特性。
這是對該相容庫的總結:該相容庫的表現相當棒,且整合到你當前的應用中也非常容易。感謝 chris 和其他為此工作的團隊成員,為我們帶來了如此實用的功能。
因此,讓我們關注下在我們的應用中使用向量圖需要注意的其他部分——將 svg 資源轉換成 vectordrawable 。據我們了解,過去 svg 支援是有一些疏漏的,這意味著我們無法通過 android studio 的匯入功能或者 第三方 svg 轉 vectordrawable 工具 來匯入官方的svg logo (這本應被認為是對基礎 svg 支援的乙個基準)。現在這有好訊息也有壞訊息。
第乙個壞訊息是:android studio 仍然不能正確匯入這個官方 svg 標誌——我已經測試了 android studio 2.0 beat 6 版本,仍然不支援。
第三方轉換工具目前還不支援 svg 的漸變和圖樣,但是這個是因為 vectordrawable 本身就不支援——只有 svg 的 path data 是確切支援的。
使用 juraj 的轉換工具和最新的 vectordrawablecompat 庫,這一切都為使用向量圖作為主流方式作好了準備,夥計們,讓我們進入向量圖時代吧!(這段原文實在不好翻譯= =)
原文發布時間為:2023年06月12日
最終排名 sdut oj
time limit 1000ms memory limit 65536kb 第四屆山東理工大學acm網路程式設計擂台賽比賽完後需要產生乙個最終排名,排名按照題數多少來決定。但是有太多的隊伍參與,手動計算排名已經不能滿足比賽的需求。現在有乙份名單記錄各個隊伍的id和做出的題目數,需要你寫乙個程式,產...
2446 最終排名
problem description 第四屆山東理工大學acm網路程式設計擂台賽比賽完後需要產生乙個最終排名,排名按照題數多少來決定。但是有太多的隊伍參與,手動計算排名已經不能滿足比賽的需求。現在有乙份名單記錄各個隊伍的id和做出的題目數,需要你寫乙個程式,產生最終的排名。為了簡化題目,這裡的排名...
tensorflow 函式最終
1 tf.contrib.learn.preprocessing.vocabularyprocessor 說明 最終的結果為分詞後的句子的索引表示形式,例如 原句為 我是中國人 分詞後為 我 是 中國人 則最終結果為 0,1,2 表示 我 在詞表中的位置為0 tf.contrib.learn.pre...