最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Android用Shape制作單邊框圖的兩種思路和坑

 更新時(shí)間:2018年08月16日 09:36:06   作者:Rflyee  
這篇文章主要介紹了詳解Android用Shape制作單邊框圖的兩種思路和坑,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

開發(fā)中遇到單/多邊框的UI,簡單的可以自己寫shape圖,復(fù)雜的一般都讓設(shè)計(jì)配合制作9patch圖了。

今天不說需要切圖的情況,只聊簡單的單/多邊框,主要是實(shí)現(xiàn)思路。

效果很簡單:

就以上圖為例介紹,只有上邊框,邊框紅色、寬1dp,其余為白色。

思路一

  • 兩層畫布疊加:底層紅色;上層白色;
  • 上層白色畫布下移1dp。

代碼實(shí)現(xiàn):

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <!--下層畫布,紅色-->
  <item>
    <shape>
      <solid android:color="#f10606" />
    </shape>
  </item>
  <!--下層畫布,白色,向下移1dp-->
  <item android:top="1dp">
    <shape>
      <solid android:color="#ffffff" />
    </shape>
  </item>
</layer-list>

其中 <item> 標(biāo)簽的 lefttop 、 rightbottom 屬性可以理解為 viewmarginXX ,這樣接下來的思路二也就順理成章了。

思路二

margin有正值,也有負(fù)值,所以...

  • 兩層畫布:底層全部白色;上層只有紅色邊框,邊框?qū)挾?dp;
  • 上層紅色邊框分別設(shè)置左、右、下margin為-1dp(這里只要負(fù)值大于邊框?qū)挾燃纯?,并且必須大于邊框?qū)挾龋?/li>

代碼實(shí)現(xiàn):

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <!--下層畫布,全白色-->
  <item>
    <shape>
      <solid android:color="#ffffff" />
    </shape>
  </item>
  <!--上層畫布,紅色邊框,寬度1dp;左、右、下設(shè)置margin-->
  <item
    android:bottom="-1dp"
    android:left="-1dp"
    android:right="-1dp"
    android:top="0dp">
    <shape>
      <stroke
        android:width="1dp"
        android:color="#f10606" />
    </shape>
  </item>
</layer-list>

單邊框就這樣了,同理,那二邊框、三邊框也就簡單了。

按需自取。

坑?

你以為到則里就結(jié)束了?圖樣圖森炮!

跑一下上邊思路二的代碼看看效果

神馬情況, strokewidth 的值和 itemleft 等的值轉(zhuǎn)化為像素的比例還不一樣?并且不同手機(jī)分辨率效果也不同,分辨率越高越容易出現(xiàn)。

當(dāng)然,思路二里把 itemleft 等的負(fù)值絕對值設(shè)置比 width 大的多一些就闊以了;另外,思路一是沒這個(gè)問題的。

至于原因嘛,太晚了,睡一覺再研究吧。

更多shape使用請移步這里:

android shape的使用詳解以及常用效果(漸變色、分割線、邊框、半透明陰影效果等)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

岗巴县| 桦川县| 巴彦淖尔市| 阳朔县| 白水县| 潜江市| 汽车| 漳平市| 布尔津县| 湘乡市| 桑日县| 涡阳县| 迁西县| 栾川县| 水城县| 江达县| 年辖:市辖区| 陆河县| 蚌埠市| 秭归县| 洛宁县| 安新县| 行唐县| 陕西省| 历史| 兰坪| 金秀| 南郑县| 临泽县| 泗阳县| 平远县| 宁安市| 崇文区| 贵州省| 吐鲁番市| 平远县| 禄丰县| 辽宁省| 榆社县| 锦州市| 北碚区|