這篇文章主要講解了“Android小程序中如何實(shí)現(xiàn)Icon圖標(biāo)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Android小程序中如何實(shí)現(xiàn)Icon圖標(biāo)”吧!

創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)增城,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
| 屬性 | 類型 | 默認(rèn)值 | 必填 | 說明 |
|---|---|---|---|---|
| type | string | 是 | icon的類型,有效值:success, success_no_circle, info, warn, waiting, cancel, download, search, clear | |
| size | number/string | 23 | 否 | icon的大小 |
| color | string | 否 | icon的顏色,同css的color |
PX 數(shù)值類型,默認(rèn)使用,什么單位都不填,只寫一個(gè)數(shù)值就可以
RPX(Responsive Pixel)屏幕自適應(yīng)單位,他將屏幕分為750個(gè)單位,每個(gè)單位是1/750。
比方說:iphone6的屏幕寬度是350px,每個(gè)rpx就是0.5px。也就是說如果我們在iphone6機(jī)器上將size的值設(shè)置為60rpx,他與設(shè)置為30或者30px的效果是一樣的。
可以的,圖標(biāo)本身就是為了更好的布局和更方便使用而誕生的。代碼如下:
<view style="font-size: 17px;margin-top: 20px;"> 我是一行文字,<icon type="success" size="15"></icon>我里面包含了圖標(biāo)! </view>
首先此問題肯定不是由于字體文件鏈接沒有加入小程序的安全域名,WXSS加載圖片及字體允許外域!如果圖標(biāo)是自定義實(shí)現(xiàn)的,要檢查一下機(jī)型及嵌入的字體文件類型,可能是兼容性引起的,在小程序中推薦使用TTF和WOFF格式的字體。如果使用的是這兩種字體,情況依然存在,可以考慮換SVG格式的數(shù)據(jù)嵌入。
直接可以打開 weui官網(wǎng)(https://weui.io/),然后通過瀏覽器開發(fā)者工具查看源碼,找到資源地址然后下載。
開箱即用。
只支持success, success_no_circle, info, warn, waiting, cancel, download, search, clear這幾種類型,遠(yuǎn)遠(yuǎn)不能滿足開發(fā)需求。
簡單粗暴,每個(gè)圖標(biāo)對應(yīng)一個(gè)圖片。
圖片在文本中不方便布局。不方便修改顏色。
圖片不能升縮,放大之后會變虛、有鋸齒。
圖片需要在本地或者網(wǎng)絡(luò)上存儲,這樣將導(dǎo)致大量HTTP請求,使得頁面加載速度變慢。
使用起來不如圖標(biāo)只使用一個(gè)名稱那么方便。
Sprite,連續(xù)圖片集,以非重疊、最小化分布的方式排列成一張圖片。每次使用的時(shí)候通過縱橫顯示的起始坐標(biāo)及區(qū)域大小,以達(dá)到動態(tài)切換的效果。
通過精靈圖實(shí)現(xiàn)一個(gè)爆炸效果。圖片大小為(650x650) px;所以每一個(gè)小圖標(biāo)大小為(130x130)px;這是css樣式設(shè)置的width和height為130px的原因,也是js代碼移動step設(shè)置為130的原因。js中l(wèi)eft和top均為負(fù)數(shù),這是由于這里不是顯示圖標(biāo)的坐標(biāo),而是背景圖片所要向左上方移動的距離。
注意:在wxss中只可以使用網(wǎng)絡(luò)圖片,不能使用本地圖片!
代碼如下:
<!--icon.wxml-->
<view>
<icon class="sprite scale" style="background-position: {{left}} {{top}};"></icon>
</view>/* icon.wxss */
.sprite{
display: block;
width: 130px;
height: 130px;
background: url("https://i.loli.net/2021/11/15/7BH5gdkbLynrfM3.png") no-repeat;
}
.scale{
transform-origin: 0 0 0;
transform: scale(2,2);
}// icon.js
Page({
/**
* 頁面的初始數(shù)據(jù)
*/
data: {
left:'0px',
top:'0px',
},
/**
* 生命周期函數(shù)--監(jiān)聽頁面加載
*/
onLoad: function () {
var that = this;
var left = 0;
var top = 0;
const step = 130;
const stop = (650-130);
var i = setInterval(function() {
if (left >= stop && top >=stop) {
clearInterval(i)
} else {
left += step;
if(left >= 650){
left = 0;
top += step;
}
that.setData({
left: '-' + left +'px',
top: '-' + top +'px'
})
}
}, 100)
},
})在加載的時(shí)候,只加載一次。減少了HTTP請求。
<view> <icon class="icon-close"></icon> </view>
.icon-close{
display: inline-block;
width: 17px;
height: 2px;
background: red;
transform: rotate(45deg);
}
.icon-close::after {
content: '';
display: block;
width: 17px;
height: 2px;
background: red;
transform: rotate(-90deg);
}每個(gè)圖標(biāo)都需要寫CSS樣式代碼,勞動量大。
這種圖標(biāo)不是字符,每個(gè)圖標(biāo)在繪制時(shí)要統(tǒng)一一個(gè)中心點(diǎn),不然使用起來控制位置會比較麻煩。
大小與顏色也不方便控制。所以這并不是一種好的圖標(biāo)方案。
當(dāng)瀏覽器渲染一個(gè)字符的時(shí)候,首先看font-family樣式,確定使用字體名是哪一個(gè)。接著以此字符的Unicode在字體文件里查找對應(yīng)的字符信息。
字體類型有兩種,一種是點(diǎn)陣字體,一種是矢量字體。現(xiàn)在使用最廣泛的是矢量字體。矢量字體大概分成三類:Adobe主導(dǎo)的Type1、Apple和Microsoft主導(dǎo)的TrueType、Adobe,Apple和Microsoft共同主導(dǎo)的開源字體OpenType。
在矢量字體里面每個(gè)Unicode只是每個(gè)字符的一個(gè)索引,每個(gè)字符描述信息是一個(gè)幾何矢量繪圖描述信息。以Type1為例,它使用三次貝塞爾曲線來繪制字形。TrueType則使用二次貝塞爾曲線描述字形。正是由于矢量字體是繪制出來的,所以它可以實(shí)時(shí)填充任何顏色,并且可以無極縮放而沒有鋸齒。
阿里巴巴的圖標(biāo)網(wǎng)站(https://iconfont.cn/),我們可以在此網(wǎng)站上搜索到任何圖片在線編輯,并下載樣式文件,在小程序里面使用。
字體源說明:
EOT是微軟IE瀏覽器專用的OpenType字體類型。
TTF是TrueType字體。
WOFF與WOFF2是移動開發(fā)專用的矢量字體格式。是對三種矢量字體格式的再封裝。
鏈接各種字體文件源可以兼容不同瀏覽器宿主環(huán)境。瀏覽器會選擇自己支持的格式,從列表中的第一個(gè)開始嘗試加載。一旦獲得一個(gè)可以使用的,就不會再加載剩下的字體格式了。小程序里面建議使用TTF和WOFF這兩個(gè)格式。WOFF2在低版本的IOS設(shè)備上會有不兼容的問題。
很多作圖軟件都可以導(dǎo)出SVG格式的矢量文件,比方說 Sketch,但是它導(dǎo)出的SVG格式的矢量文件有沒有用的垃圾信息。可以到 阿里巴巴的圖標(biāo)網(wǎng)站 編輯好之后下載SVG格式的矢量文件,它不帶什么垃圾信息。然后我們拿這個(gè)文件找一個(gè)Image2base64工具,將文件內(nèi)容轉(zhuǎn)化為base64的字符串。然后就可以在小程序里使用這個(gè)base64的字符串作為圖片源,實(shí)現(xiàn)自定義圖標(biāo)了。
1、準(zhǔn)備SVG圖片
2、使用線上Image2base64轉(zhuǎn)換圖片為:
data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjM2OTcwNTk4NjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI2MDAiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PGRlZnM+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvZGVmcz48cGF0aCBkPSJNMzI2LjIgNDI5LjdMNzEwIDQyOCA1MjUuNCA4OTIuMXoiIGZpbGw9IiM4M0E0RkYiIHAtaWQ9IjI2MDEiPjwvcGF0aD48cGF0aCBkPSJNMzcwLjIgMjcxLjFsMjkyLjQgMi42IDUxLjcgMTEzLTM3OS41LTIuNnoiIGZpbGw9IiNGRjdFNzEiIHAtaWQ9IjI2MDIiPjwvcGF0aD48cGF0aCBkPSJNMjk2LjEgMzgwLjdMNjQuOSAyODQuMWwxMjQuMi05Mi4zIDE0OC40IDc2Ljd6IiBmaWxsPSIjQTRCRUZGIiBwLWlkPSIyNjAzIj48L3BhdGg+PHBhdGggZD0iTTY0LjkgMzMwLjVMMjg0IDQyOGwyMzUuNSA0NjAuNnpNNzU1LjYgNDI3LjFMOTYwLjkgMzIxIDUyOC44IDg4NnoiIGZpbGw9IiM1Qjc5RkIiIHAtaWQ9IjI2MDQiPjwvcGF0aD48cGF0aCBkPSJNNzUxLjMgMzc5LjhsLTU3LjgtMTE5IDEzMi03My40IDExMy44IDk1Ljh7IiBmaWxsPSIjQTRCRUZGIiBwLWlkPSIyNjA1Ij48L3BhdGg+PHBhdGggZD0iTTM2NS44IDIzMy40bC01MC0xMi45LTk0LTUyLjcgMTEwLjQtMzkuNmgzNjAuNmwxMDkuNSA0NS43LTEwNS4yIDUwLjktMzUuNCA4LjZ6IiBmaWxsPSIjQzdEOEZGIiBwLWlkPSIyNjA2Ij48L3BhdGg+PC9zdmc+
3、編寫代碼
.svg-icon{
display: block;
width: 200px;
height: 200px;
background-repeat: no-repeat;
background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjM2OTcwNTk4NjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI2MDAiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PGRlZnM+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvZGVmcz48cGF0aCBkPSJNMzI2LjIgNDI5LjdMNzEwIDQyOCA1MjUuNCA4OTIuMXoiIGZpbGw9IiM4M0E0RkYiIHAtaWQ9IjI2MDEiPjwvcGF0aD48cGF0aCBkPSJNMzcwLjIgMjcxLjFsMjkyLjQgMi42IDUxLjcgMTEzLTM3OS41LTIuNnoiIGZpbGw9IiNGRjdFNzEiIHAtaWQ9IjI2MDIiPjwvcGF0aD48cGF0aCBkPSJNMjk2LjEgMzgwLjdMNjQuOSAyODQuMWwxMjQuMi05Mi4zIDE0OC40IDc2Ljd6IiBmaWxsPSIjQTRCRUZGIiBwLWlkPSIyNjAzIj48L3BhdGg+PHBhdGggZD0iTTY0LjkgMzMwLjVMMjg0IDQyOGwyMzUuNSA0NjAuNnpNNzU1LjYgNDI3LjFMOTYwLjkgMzIxIDUyOC44IDg4NnoiIGZpbGw9IiM1Qjc5RkIiIHAtaWQ9IjI2MDQiPjwvcGF0aD48cGF0aCBkPSJNNzUxLjMgMzc5LjhsLTU3LjgtMTE5IDEzMi03My40IDExMy44IDk1Ljh7IiBmaWxsPSIjQTRCRUZGIiBwLWlkPSIyNjA1Ij48L3BhdGg+PHBhdGggZD0iTTM2NS44IDIzMy40bC01MC0xMi45LTk0LTUyLjcgMTEwLjQtMzkuNmgzNjAuNmwxMDkuNSA0NS43LTEwNS4yIDUwLjktMzUuNCA4LjZ6IiBmaWxsPSIjQzdEOEZGIiBwLWlkPSIyNjA2Ij48L3BhdGg+PC9zdmc+");
}<view> <icon class="svg-icon"></icon> </view>
此種方法仍舊需要一張圖片處理一次,然后在頁面中引用。注意:樣式文件中的width和height屬性的值需要和下載的SVG文件的width和height保持一致的(在svg標(biāo)簽中可以看到)。
這種繪制用于制作動畫還是可以的,但是用來做圖標(biāo)有點(diǎn)大材小用了。
感謝各位的閱讀,以上就是“Android小程序中如何實(shí)現(xiàn)Icon圖標(biāo)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Android小程序中如何實(shí)現(xiàn)Icon圖標(biāo)這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
網(wǎng)頁名稱:Android小程序中如何實(shí)現(xiàn)Icon圖標(biāo)
文章轉(zhuǎn)載:http://www.yijiale78.com/article20/pehjco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、外貿(mào)建站、標(biāo)簽優(yōu)化、云服務(wù)器、Google、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)