Vectors For All 最終篇 譯

2021-09-23 01:29:05 字數 3187 閱讀 1921

本文講的是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...