91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

周末你ZAO了嗎?ZAO是做什么的?

DPVg_AI_era ? 來源:lq ? 2019-09-13 16:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

經(jīng)過一個周末的發(fā)酵,一夜爆紅的換臉APP“ZAO”已經(jīng)被推到了輿論的風口浪尖,在娛樂的同時,涉及的技術(shù)問題、隱私問題、安全問題備受關注?,F(xiàn)在我們冷靜下來再審視這個ZAO。

周末你ZAO了嗎?

8月30日晚間,一個名為“ZAO”的APP一夜爆紅,有的人嘗鮮樂此不疲、有的人則對其中涉及到的隱私問題憂心忡忡。到了第二天,這個APP已經(jīng)被推到了輿論的風口浪尖。 目前,ZAO的微信分享鏈接顯示已停止訪問,頁面顯示“網(wǎng)頁存在安全風險,被多人投訴,為維護綠色上網(wǎng)環(huán)境,已停止訪問”。

經(jīng)過一個周末的發(fā)酵,我們現(xiàn)在冷靜下來再審視這個ZAO。

ZAO是做什么的?

“僅需一張照片,出演天下好戲”,正如這句廣告語,ZAO其實是一個換臉APP。用戶只需上傳一張面部照片,再選一個自己喜歡的影片片段和角色,就可以把這些角色的面孔換成自己的模樣,簡直是不費吹灰之力過了一把“明星”癮。

因此,ZAO瞬間走紅的原因不外乎兩個:第一,使用門檻低;第二,可以滿足大家的“明星夢”。 從一夜爆紅到幾乎全民聲討,ZAO的用戶協(xié)議“細思極恐”

從一夜爆紅到幾乎全民聲討,ZAO到底做錯了什么?其實,最主要的原因就是“隱私”二字。

知乎的一則相關提問:“如何看待 AI 換臉軟件「ZAO」的爆火?”已經(jīng)被瀏覽了576萬次,引發(fā)網(wǎng)友熱烈討論。

知乎網(wǎng)友“法山叔”看了ZAO的用戶協(xié)議后得出了兩個結(jié)論:

1、“ZAO”app涉嫌過度攫取用戶授權(quán),讓你在無形中將自己的肖像權(quán)拱手讓人,以后你的臉將完全有可能被別人隨意使用,變換;

2、zao并未獲得換臉明星們的肖像權(quán)授權(quán),你變臉涉嫌侵權(quán),但當明星認為自己的權(quán)利受到侵害時,“ZAO”app將完全有可能將法律的鍋全部甩給你,讓你自己承擔侵權(quán)苦果。

“法山叔”為我們解讀了用戶協(xié)議中“細思極恐”的地方:

用戶協(xié)議第6條第1款規(guī)定:“在您上傳及/或發(fā)布用戶內(nèi)容以前,您同意或者確保實際權(quán)利人同意授予zao及其關聯(lián)公司以及zao用戶全球范圍內(nèi)完全免費、不可撤銷、永久、可轉(zhuǎn)授權(quán)和可再許可的權(quán)利,包括但不限于可以對用戶內(nèi)容進行全部或部分的修改與編輯...”以及對修改前后的用戶內(nèi)容進行信息網(wǎng)絡傳播以及著作權(quán)人享有的全部著作財產(chǎn)權(quán)利及鄰接權(quán)利。"

這是什么意思呢?你在正式使用該app以前,是要上傳自己肖像的,不僅靜態(tài),還有動態(tài),而當你選擇使用這個app以后,根據(jù)協(xié)議內(nèi)容,該app除了可免費使用并修改你的肖像,還可以將它任意授權(quán)給自己想授權(quán)的第三方,當做信息進行販賣。所以當有一天,你在zao或者其它關聯(lián)平臺上發(fā)現(xiàn)你的臉被隨意變換、不再屬于自己的時候,你想起訴zao,不好意思,它會拿出這個協(xié)議來堵你的嘴,告訴你你自己早已同意。

“法山叔”還為我們解讀了關于侵權(quán)的規(guī)定:

第6條第2款明確規(guī)定:“如果您把用戶內(nèi)容中的人臉換成您或其他人的臉,您同意或確保肖像權(quán)利人同意授予‘zao’及其關聯(lián)公司全球范圍內(nèi)完全免費、不可撤銷、永久、可轉(zhuǎn)授權(quán)和可再許可的權(quán)利。”

這是什么意思呢,比如現(xiàn)在你將楊冪的臉換成自己的臉,你除了要保證自己永久、不可撤銷地把自己的肖像免費給zao使用,還要保證楊冪同意zao及關聯(lián)公司使用她的肖像...但你又不是楊冪,你怎么能確保?這不搞笑嗎。而他這么做,說白了,就是因為自己沒錢拿到明星們的授權(quán),日后侵權(quán),他們可以將鍋甩給你們。

而在此情形下,協(xié)議第七條第7款規(guī)定:若您侵害他人名譽權(quán)、肖像權(quán)、知識產(chǎn)權(quán)等合法權(quán)利的...zao可以訴諸行政執(zhí)法機構(gòu)或司法機關,追究相應法律責任。若因您違反本協(xié)議或zao平臺的其他規(guī)則導致任何第三方損害的,您應當獨立承擔法律責任并承擔損害賠償責任;zao及其關聯(lián)公司遭受損失的,您也應當一并賠償。

意思即,如果楊冪狀告zao,主張自己的肖像權(quán)被zao平臺濫用,那zao完全可能說這不怪我,技術(shù)無罪,要怪就怪這些換你臉的用戶,并且,即使zao承擔了平臺責任,其也完全可以起訴具體用戶進行追償。總的來說,他們把自己的屁股擦得非常干凈,將侵權(quán)的苦果全部甩給了用戶。

“法山叔”還提醒道:現(xiàn)在人臉支付,手機人臉解鎖正逐漸普及,如果它擁有你的動態(tài)肖像權(quán),那背后可能出現(xiàn)的問題豈不是更令人不堪設想。

新智元經(jīng)授權(quán)引用“法山叔”的知乎回答,原回答鏈接:
鏈接:https://www.zhihu.com/question/343647357/answer/808994379
這又引發(fā)了一個新問題,現(xiàn)在的人臉支付、手機人臉解鎖會因為ZAO的出現(xiàn)而有安全風險嗎?玩這個軟件會不會導致自己的支付寶刷臉被冒充?

根據(jù)“支付寶”的回應:不會的。因為“支付寶「刷臉支付」采用的是3D人臉識別技術(shù):在進行人臉識別前,會通過軟硬件結(jié)合的方式進行檢測,來判斷采集到的人臉是否是照片、視頻或者軟件模擬生成的,能有效地避免各種人臉偽造帶來的身份冒用情況?!倍?,支付寶表示:即便出現(xiàn)賬戶被冒用的極小概率事件,資金損失也會通過保險公司進行全額賠付。

“換臉”不新鮮,Deepfakes技術(shù)詳解

雖然ZAO沒有公布使用的具體技術(shù),但其實,AI換臉并不是非常新鮮的技術(shù)了。前一陣子便有朱茵變楊冪,海王變徐錦江的相關報道。

《射雕英雄傳》中,朱茵變楊冪

海王變徐錦江

這些技術(shù)的背后,是2017年年底的Deepfakes軟件帶來的結(jié)果。當時Reddit用戶Deepfakes,將《神奇女俠》的女主角蓋爾·加朵、以及艾瑪沃森、斯嘉麗等眾多女明星的臉跟AV***進行了交換,制作出足以以假亂真的愛情動作片。

接下來我們來了解下Deepfakes的技術(shù)內(nèi)容:

Deepfakes 使用生成對抗網(wǎng)絡(GAN),其中兩個機器學習模型進行了較量。一個ML模型在數(shù)據(jù)集上進行訓練,然后創(chuàng)建偽造的視頻,而另一個模型嘗試檢測偽造。偽造者創(chuàng)建假視頻,直到另一個ML模型無法檢測到偽造。訓練數(shù)據(jù)集越大,偽造者越容易創(chuàng)建可信的deepfake視頻。

上圖顯示了一個圖像(在本例中是一張臉)被輸入到編碼器(encoder)中。其結(jié)果是同一張臉的低維表示,有時被稱為latent face。根據(jù)網(wǎng)絡架構(gòu)的不同,latent face可能根本不像人臉。當通過解碼器(decoder)時,latent face被重建。自動編碼器是有損的,因此重建的臉不太可能有原來的細節(jié)水平。

程序員可以完全控制網(wǎng)絡的形狀:有多少層,每層有多少節(jié)點,以及它們?nèi)绾芜B接。網(wǎng)絡的真實知識存儲在連接節(jié)點的邊緣。每條邊都有一個權(quán)重,找到使自動編碼器能夠像描述的那樣工作的正確權(quán)重集是一個耗時的過程。

訓練神經(jīng)網(wǎng)絡意味著優(yōu)化其權(quán)重以達到特定的目標。在傳統(tǒng)的自動編碼器的情況下,網(wǎng)絡的性能取決于它如何根據(jù)其潛在空間的表示重建原始圖像。

訓練Deepfakes

需要注意的是,如果我們單獨訓練兩個自動編碼器,它們將互不兼容。latent faces基于每個網(wǎng)絡在其訓練過程中認為有意義的特定特征。但是如果將兩個自動編碼器分別在不同的人臉上訓練,它們的潛在空間將代表不同的特征。

使人臉交換技術(shù)成為可能的是找到一種方法來強制將兩個潛在的人臉在相同的特征上編碼。Deepfakes通過讓兩個網(wǎng)絡共享相同的編碼器,然后使用兩個不同的解碼器來解決這個問題。

在訓練階段,這兩個網(wǎng)絡需要分開處理。解碼器A僅用A的人臉來訓練;解碼器B只用B的人臉來訓練,但是所有的latent face都是由同一個編碼器產(chǎn)生的。這意味著編碼器本身必須識別兩個人臉中的共同特征。因為所有的人臉都具有相似的結(jié)構(gòu),所以編碼器學習“人臉”本身的概念是合理的。

生成Deepfakes

當訓練過程完成后,我們可以將A生成的一個latent face傳遞給解碼器B。如下圖所示,解碼器B將嘗試從與A相關的信息中重構(gòu)B。

如果網(wǎng)絡已經(jīng)很好地概括了人臉的構(gòu)成,那么潛在空間將表示面部表情和方向。這意味著可以為B生成與A的表情和方向相同的人臉。

請看下面的動圖。左邊,UI藝術(shù)家Anisa Sanusi的臉被從一個視頻中提取并對齊。右邊,一個訓練好的神經(jīng)網(wǎng)絡正在重建游戲設計師Henry Hoffman的臉,以匹配Anisa的表情。

顯然,Deepfakes背后的技術(shù)并不受人臉的限制。例如,它可以用來把蘋果變成獼猴桃。

重要的是,訓練中使用的兩個主體要有盡可能多的相似之處。這是為了確保共享編碼器能夠泛化易于傳輸?shù)挠幸饬x的特性。雖然這項技術(shù)對人臉和水果都有效,但不太可能將人臉變成水果。

你還敢“ZAO”嗎?

ZAO不僅國內(nèi)火爆,國外用戶也紛紛被這一APP驚艷到了,不少人也分享出自己用ZAO做的“好萊塢大片”。

比如這個在Twitter上已經(jīng)播放了50多萬次的視頻,就是一位印度游戲開發(fā)工程師用ZAO做出的《泰坦尼克號》,視頻中,他化身Jack,融入到一幕幕經(jīng)典場景中。

在評論中,外國網(wǎng)友也熱議這個APP。

“太瘋狂了...從現(xiàn)在開始,這個世界再也不知道什么是真的了”

“嘿伙計們,來玩有趣的新AI學習算法,絕對不會用來訓練面部識別軟件帶來可怕的安全問題并奴役我們所有人!”

“說實話,每個允許用戶發(fā)布自拍的平臺都可以做到。問題是人們永遠不會停止發(fā)布自拍?!?/p>

“deepfake的演變是不可思議的。該技術(shù)僅用了3年時間,現(xiàn)在它已經(jīng)用于公共應用程序中。” 對于ZAO,你怎么看?

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 神經(jīng)網(wǎng)絡

    關注

    42

    文章

    4838

    瀏覽量

    107920
  • APP
    APP
    +關注

    關注

    33

    文章

    1592

    瀏覽量

    76029
  • 人臉識別
    +關注

    關注

    77

    文章

    4127

    瀏覽量

    88559

原文標題:你真敢ZAO嗎?解讀換臉AI “細思極恐” 的用戶協(xié)議

文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    系統(tǒng)軟件開發(fā)公司是做什么的哪家好呢

    軟件
    北京華盛恒輝科技
    發(fā)布于 :2026年03月02日 20:31:17

    工業(yè)用電總跳閘,的電抗器真的選對了嗎?

    是不是也遇到過這樣的困擾:工廠生產(chǎn)線上的設備頻繁跳閘,檢查了半天也沒找出原因?配電柜里的斷路器總是無緣無故地跳開,不僅耽誤生產(chǎn),還可能燒毀昂貴的設備?這些讓頭疼不已的問題,根源可能并不在設備本身
    的頭像 發(fā)表于 02-06 13:05 ?295次閱讀
    工業(yè)用電總跳閘,<b class='flag-5'>你</b>的電抗器真的選對<b class='flag-5'>了嗎</b>?

    Nullmax亮相南方周末2025科創(chuàng)大會

    11月28日,南方周末2025科創(chuàng)大會 在滬舉行,Nullmax旗下MaxDrive平臺化輔助駕駛方案榮獲「年度科創(chuàng)實踐案例」。
    的頭像 發(fā)表于 12-02 15:54 ?490次閱讀

    全固態(tài)電池真的要“上車”了嗎?

    500公里以上續(xù)航的車在搭載固態(tài)電池之后可以達到1000公里以上的續(xù)航。計劃在2026年進行小批量裝車實驗,2027年到2030年期間,逐步進行批量生產(chǎn)。 報道發(fā)出后備受關注,在周一廣汽開盤一字漲停!那么全固態(tài)電池真的要“上車”了嗎?
    的頭像 發(fā)表于 11-25 14:12 ?901次閱讀

    模擬前端芯片是做什么的(什么是模擬前端芯片)

    模擬前端芯片,常簡稱為AFE,是位于信號處理鏈最前端的集成電路。它負責接收、調(diào)理和轉(zhuǎn)換來自傳感器或其他信號源的模擬信號,如電壓、電流、溫度、壓力等,并將其轉(zhuǎn)換為高精度的數(shù)字信號,供后續(xù)的數(shù)字處理器(如MCU)進行運算與分析。模擬前端AFE芯片是連接真實模擬世界與數(shù)字計算世界的“精準翻譯官”,其性能直接決定了整個系統(tǒng)的測量精度與可靠性。
    的頭像 發(fā)表于 11-21 14:33 ?585次閱讀

    浮思特 | NMB散熱風扇型號命名含義大揭秘,真的懂了嗎?

    在選購散熱風扇的時候,是不是經(jīng)常被一串長長的型號搞暈?尤其是NMB這種國際知名品牌,型號看起來像是密碼一樣:比如2410ML-05W-B69-B00,一眼看過去,完全不明白這幾個字母和數(shù)字到底想
    的頭像 發(fā)表于 08-13 14:04 ?1740次閱讀
    浮思特 | NMB散熱風扇型號命名含義大揭秘,<b class='flag-5'>你</b>真的懂<b class='flag-5'>了嗎</b>?

    又是周末了,大家準備去哪里玩

    #共建RISC-V MCU技術(shù)社區(qū),為RISC-V生態(tài)點贊# 最近受臺風竹節(jié)草的影響 很多地方高溫都退去了吧 這兩天天氣還行 沒下雨,溫度正合適 又遇到了周末 大家準備去哪里逛一逛呢
    發(fā)表于 08-01 13:12

    k230接入規(guī)定電源后,只亮紅燈,按鍵都沒有反應,電腦識別不出sdcard,請問是燒壞了嗎?

    k230接入規(guī)定電源后,只亮紅燈,按鍵都沒有反應,電腦識別不出sdcard,請問是燒壞了嗎
    發(fā)表于 07-29 12:25

    什么是STM32? STM32與ARM有什么關系? STM32能做什么

    什么是STM32 具體用于什么方面較多?? STM32與ARM有什么關系 STM32能做什么,簡單的比如調(diào)節(jié)協(xié)議,為什么那么久的產(chǎn)品到現(xiàn)在還是主流?
    發(fā)表于 06-23 17:34

    一篇文章告訴電性能測試是做什么的

    電氣性能是衡量電氣元件和系統(tǒng)功能的關鍵指標,它包括額定電壓、電流、有功功率、無功功率等基本參數(shù),以及電阻、電容、電感、電導等特性。半導體元件的電性能則更為復雜,涉及直流和交流放大倍數(shù)、整流電流、反向擊穿電壓等參數(shù)。電性能測試是確保元件和系統(tǒng)質(zhì)量的重要環(huán)節(jié),它包括對導線電阻、絕緣電阻、介質(zhì)損耗角、電容等基本參數(shù)的測量。電容作為電氣系統(tǒng)中常見的元件,其性能測試尤
    的頭像 發(fā)表于 06-23 11:31 ?601次閱讀
    一篇文章告訴<b class='flag-5'>你</b>電性能測試是<b class='flag-5'>做什么的</b>

    所以做出來了嗎

    所以做出來了嗎,求
    發(fā)表于 06-16 01:43

    人工智能是做什么的

    在當今科技日新月異的時代,人工智能(ArtificialIntelligence,簡稱AI)已成為推動社會進步和經(jīng)濟發(fā)展的重要力量。本文旨在深入探討人工智能的核心功能、應用領域,并通過具體實例解析其如何改變我們的生活與工作方式。同時,我們還將介紹萬達寶LAIDFU(來福)作為無限AI助理的一些獨特功能,如數(shù)據(jù)分區(qū)設計和用戶自定義嵌入屬性,以展示AI技術(shù)的最新
    的頭像 發(fā)表于 05-30 10:04 ?913次閱讀
    人工智能是<b class='flag-5'>做什么的</b>

    藍牙6.0,厘米級定位+超低功耗,的設備該升級了!

    還在為藍牙設備定位不準、頻繁充電煩惱?藍牙6.0來了!它用“厘米級精準定位”重新定義物聯(lián)體驗,更以超低功耗、多重安全革新,成為下一代智能硬件的標配。的設備準備好“開掛”了嗎?藍牙6.0的三
    的頭像 發(fā)表于 05-14 11:30 ?5704次閱讀
    藍牙6.0,厘米級定位+超低功耗,<b class='flag-5'>你</b>的設備該升級了!

    繼電保護是用來做什么的

    繼電保護是電力系統(tǒng)中的“安全衛(wèi)士”,其核心任務是?快速檢測故障并隔離故障區(qū)域?,確保電力設備免遭損壞、防止停電范圍擴大,同時維護電網(wǎng)的穩(wěn)定運行。在現(xiàn)代電力系統(tǒng)中,繼電保護裝置如同人體的免疫系統(tǒng),能夠在毫秒級時間內(nèi)識別異常并采取行動,是保障供電安全的核心技術(shù)之一。 一、繼電保護的四大核心功能 ?故障檢測? 實時監(jiān)測電流、電壓、頻率等電氣參數(shù),精準識別短路、過載、接地故障等異常狀態(tài)。例如: 短路故障:電流驟增至正常值的數(shù)倍至數(shù)十倍。 接地故障:中性點電壓偏移或零序電流異常。 ?故障隔離? 通過控制斷路器在?20-100毫秒內(nèi)?切斷故障線路,避免故障蔓延。例如: 輸電線路發(fā)生短路時,距離保護裝置可迅速定位故障點并跳閘。 ?告警與記錄? 觸發(fā)聲光報警,并記錄故障波形、動作時間等數(shù)據(jù),為后續(xù)故障分析提供依據(jù)。 ?系統(tǒng)自愈支持? 配合自動化設備(如重合閘裝置),在故障清除后嘗試恢復供電,減少停電時間。 二、繼電保護的組成與工作原理 ?系統(tǒng)架構(gòu) ?組件 ?功能? ?測量元件 采集電流互感器(CT)、電壓互感器(PT)信號 ?邏輯判斷單元 分析參數(shù)是否符合故障特征(如過流、差動) ?執(zhí)行元件 驅(qū)動斷路器或發(fā)信裝置動作 ? ?典型保護原理? ?過電流保護?:檢測電流超過設定閾值(如1.2倍額定電流),適用于配電網(wǎng)線路。 ?差動保護?:比較設備兩端電流差值,若差值超限則判定內(nèi)部故障(常用于變壓器、發(fā)電機)。 ?距離保護?:通過阻抗計算定位故障點位置,適用于長距離輸電線路。 三、繼電保護的應用場景 ?發(fā)電環(huán)節(jié)? 發(fā)電機保護:定子接地保護、轉(zhuǎn)子過負荷保護、失磁保護等。 案例:某水電站因差動保護動作,0.1秒內(nèi)隔離發(fā)電機內(nèi)部短路,避免機組燒毀。 ?輸電與變電環(huán)節(jié)? 輸電線路:縱聯(lián)保護、光纖差動保護,保障跨區(qū)域電網(wǎng)安全。 變壓器:瓦斯保護(非電量)、比率制動差動保護,防止絕緣油分解或繞組故障。 ?配電環(huán)節(jié)? 配網(wǎng)饋線:過流保護配合自動重合閘,減少用戶停電時間。 數(shù)據(jù):90%的配電故障可在300毫秒內(nèi)隔離并恢復供電。 四、繼電保護的技術(shù)演進 ?從電磁式到數(shù)字化? ?早期電磁繼電器?:依靠機械觸點動作,響應速度慢(>100ms),維護頻繁。 ?微機保護裝置?:集成DSP芯片,支持多判據(jù)融合計算,動作時間縮短至20ms以內(nèi)。 ?智能化升級? ?廣域保護系統(tǒng)?:基于5G通信實時共享電網(wǎng)狀態(tài),實現(xiàn)跨區(qū)域協(xié)同控制。 ?AI故障預測?:利用機器學習分析歷史數(shù)據(jù),提前預警絕緣老化風險。 ?挑戰(zhàn)與突破? 新能源并網(wǎng):光伏、風電的波動性要求保護裝置具備自適應能力。 解決方案:引入“方向性過流保護”應對分布式電源雙向電流沖擊。 五、總結(jié) 繼電保護是電力系統(tǒng)安全運行的基石,其價值體現(xiàn)在三個方面: ?經(jīng)濟性?:減少設備損壞帶來的巨額維修成本(如一臺500kV變壓器損壞損失超千萬元)。 ?可靠性?:保障99.99%以上的供電可用性,支撐現(xiàn)代社會穩(wěn)定運轉(zhuǎn)。 ?智能化?:隨著數(shù)字孿生、邊緣計算等技術(shù)的融合,繼電保護正從“被動響應”邁向“主動防御”。 未來,繼電保護將與能源互聯(lián)網(wǎng)深度結(jié)合,成為構(gòu)建新型電力系統(tǒng)的核心防線。
    發(fā)表于 05-06 10:32

    創(chuàng)建列表 (List) 介紹,一起來看看是做什么的

    創(chuàng)建列表 (List) 列表是一種復雜的容器,當列表項達到一定數(shù)量,內(nèi)容超過屏幕大小時,可以自動提供滾動功能。它適合用于呈現(xiàn)同類數(shù)據(jù)類型或數(shù)據(jù)類型集,例如圖片和文本。在列表中顯示數(shù)據(jù)集合是許多應用程序中的常見要求(如通訊錄、音樂列表、購物清單等)。 開發(fā)布局 設置主軸方向 List組件主軸默認是垂直方向,即默認情況下不需要手動設置List方向,就可以構(gòu)建一個垂直滾動列表。 若是水平滾動列表場景,將List的listDirection屬性設置為Axis.Horizontal即可實現(xiàn)。listDirection默認為Axis.Vertical,即主軸默認是垂直方向。 List() {// ...}.listDirection(Axis.Horizontal)設置交叉軸布局 List組件的交叉軸布局可以通過lanes和alignListItem屬性進行設置,lanes屬性用于確定交叉軸排列的列表項數(shù)量,alignListItem用于設置子組件在交叉軸方向的對齊方式。 List組件的lanes屬性通常用于在不同尺寸的設備自適應構(gòu)建不同行數(shù)或列數(shù)的列表,即一次開發(fā)、多端部署的場景,例如歌單列表。lanes屬性的取值類型是"number | LengthConstrain",即整數(shù)或者LengthConstrain類型。以垂直列表為例,如果將lanes屬性設為2,表示構(gòu)建的是一個兩列的垂直列表,如圖2中右圖所示。lanes的默認值為1,即默認情況下,垂直列表的列數(shù)是1。 List() {// ...}.lanes(2)當其取值為LengthConstrain類型時,表示會根據(jù)LengthConstrain與List組件的尺寸自適應決定行或列數(shù)。 @Entry@Componentstruct EgLanes {@State egLanes: LengthConstrain = { minLength: 200, maxLength: 300 }build() { List() {// ... } .lanes(this.egLanes)}}例如,假設在垂直列表中設置了lanes的值為{ minLength: 200, maxLength: 300 }。此時, 當List組件寬度為300vp時,由于minLength為200vp,此時列表為一列。 當List組件寬度變化至400vp時,符合兩倍的minLength,則此時列表自適應為兩列。 同樣以垂直列表為例,當alignListItem屬性設置為ListItemAlign.Center表示列表項在水平方向上居中對齊。alignListItem的默認值是ListItemAlign.Start,即列表項在列表交叉軸方向上默認按首部對齊。 List() {// ...}.alignListItem(ListItemAlign.Center)自定義列表樣式 設置內(nèi)容間距 在初始化列表時,如需在列表項之間添加間距,可以使用space參數(shù)。例如,在每個列表項之間沿主軸方向添加10vp的間距: List({ space: 10 }) {// ...}添加分隔線 分隔線用來將界面元素隔開,使單個元素更加容易識別。如下圖所示,當列表項左邊有圖標(如藍牙圖標),由于圖標本身就能很好的區(qū)分,此時分隔線從圖標之后開始顯示即可。 List提供了divider屬性用于給列表項之間添加分隔線。在設置divider屬性時,可以通過strokeWidth和color屬性設置分隔線的粗細和顏色。 startMargin和endMargin屬性分別用于設置分隔線距離列表側(cè)邊起始端的距離和距離列表側(cè)邊結(jié)束端的距離。 class DividerTmp {strokeWidth: Length = 1startMargin: Length = 60endMargin: Length = 10color: ResourceColor = '#ffe9f0f0'constructor(strokeWidth: Length, startMargin: Length, endMargin: Length, color: ResourceColor) { this.strokeWidth = strokeWidth this.startMargin = startMargin this.endMargin = endMargin this.color = color}}@Entry@Componentstruct EgDivider {@State egDivider: DividerTmp = new DividerTmp(1, 60, 10, '#ffe9f0f0')build() { List() {// ... } .divider(this.egDivider)}}此示例表示從距離列表側(cè)邊起始端60vp開始到距離結(jié)束端10vp的位置,畫一條粗細為1vp的分割線,可以實現(xiàn)圖9設置列表分隔線的樣式。 說明: 分隔線的寬度會使ListItem之間存在一定間隔,當List設置的內(nèi)容間距小于分隔線寬度時,ListItem之間的間隔會使用分隔線的寬度。 當List存在多列時,分割線的startMargin和endMargin作用于每一列上。 List組件的分隔線畫在兩個ListItem之間,第一個ListItem上方和最后一個ListItem下方不會繪制分隔線。 添加滾動條 當列表項高度(寬度)超出屏幕高度(寬度)時,列表可以沿垂直(水平)方向滾動。在頁面內(nèi)容很多時,若用戶需快速定位,可拖拽滾動條,如下圖所示。 在使用List組件時,可通過scrollBar屬性控制列表滾動條的顯示。scrollBar的取值類型為BarState,當取值為BarState.Auto表示按需顯示滾動條。此時,當觸摸到滾動條區(qū)域時顯示控件,可上下拖拽滾動條快速瀏覽內(nèi)容,拖拽時會變粗。若不進行任何操作,2秒后滾動條自動消失。 scrollBar屬性API version 9及以下版本默認值為BarState.Off,從API version 10版本開始默認值為BarState.Auto。 List() {// ...}.scrollBar(BarState.Auto)完整代碼 class DividerTmp {strokeWidth: Length = 1startMargin: Length = 60endMargin: Length = 10color: ResourceColor = '#ffe9f0f0'constructor(strokeWidth: Length, startMargin: Length, endMargin: Length, color: ResourceColor) { this.strokeWidth = strokeWidth this.startMargin = startMargin this.endMargin = endMargin this.color = color}}interface ContactsInterface {title: string;icon: Resource;}@Entry@Componentstruct EgDivider {@State egDivider: DividerTmp = new DividerTmp(1, 60, 10, '#ffe9f0f0')private contacts: Array = [ {title: "WLAN", icon: $r("app.media.ic_settings_wifi")}, {title: "藍牙", icon: $r("app.media.ic_setting_bluetooth")}, {title: "移動數(shù)據(jù)", icon: $r("app.media.ic_setting_mobile_network")}, {title: "xxx", icon: $r("app.media.icon")}, {title: "xxx", icon: $r("app.media.icon")}, {title: "xxx", icon: $r("app.media.icon")}, {title: "xxx", icon: $r("app.media.icon")}, {title: "xxx", icon: $r("app.media.icon")}, {title: "xxx", icon: $r("app.media.icon")}, {title: "xxx", icon: $r("app.media.icon")}]build() { Column() {List() {ForEach(this.contacts, (item: ContactsInterface) =&gt; { ListItem() {Row() {Image(item.icon) .width(40) .height(40) .margin(10)Text(item.title).fontSize(20)}.width('100%').justifyContent(FlexAlign.Start) }})}.divider(this.egDivider).scrollBar(BarState.Auto) }.height("100%") .width("100%")}}
    發(fā)表于 04-30 07:06