{"id":722,"date":"2016-01-17T13:19:45","date_gmt":"2016-01-17T05:19:45","guid":{"rendered":"https:\/\/www.ray650128.com\/wordpress\/?p=598"},"modified":"2016-01-17T13:19:45","modified_gmt":"2016-01-17T05:19:45","slug":"android%e8%bd%89%e8%bc%89-android%e6%a8%a3%e5%bc%8f%e7%9a%84%e9%96%8b%e7%99%bcshape%e7%af%87","status":"publish","type":"post","link":"https:\/\/blog.ray650128.com\/?p=722","title":{"rendered":"[Android]\u8f49\u8f09-Android\u6a23\u5f0f\u7684\u958b\u767c:shape\u7bc7"},"content":{"rendered":"<p><span class=\"md_line\">\u8f49\u8f09\u81ea<a class=\"md_compiled\" href=\"http:\/\/keeganlee.me\/\">Keegan\u5c0f\u92fc<\/a><\/span><\/p>\n<p><span class=\"md_line\">\u539f\u6587\u9023\u7d50\uff1a<strong><a href=\"http:\/\/keeganlee.me\/post\/android\/20150830\" target=\"_blank\" rel=\"noopener\">http:\/\/keeganlee.me\/post\/android\/20150830<\/a><\/strong><\/span><\/p>\n<hr \/>\n<p class=\"md_block\"><span class=\"md_line\">\u4e00\u500b\u61c9\u7528\uff0c\u61c9\u8a72\u4fdd\u6301\u4e00\u5957\u7d71\u4e00\u7684\u6a23\u5f0f\uff0c\u5305\u62ecButton\u3001EditText\u3001ProgressBar\u3001Toast\u3001Checkbox\u7b49\u5404\u7a2e\u63a7\u4ef6\u7684\u6a23\u5f0f\uff0c\u9084\u5305\u62ec\u63a7\u4ef6\u9593\u9694\u3001\u6587\u5b57\u5927\u5c0f\u548c\u984f\u8272\u3001\u9670\u5f71\u7b49\u7b49\u3002web\u7684\u6a23\u5f0f\u7528css\u4f86\u5b9a\u7fa9\uff0c\u800candroid\u7684\u6a23\u5f0f\u4e3b\u8981\u5247\u662f\u901a\u904eshape\u3001selector\u3001layer-list\u3001level-list\u3001style\u3001theme\u7b49\u7d44\u5408\u5be6\u73fe\u3002\u6211\u5c07\u7528\u4e00\u7cfb\u5217\u6587\u7ae0\uff0c\u5faa\u5e8f\u6f38\u9032\u5730\u8b1b\u89e3\u6a23\u5f0f\u7684\u6bcf\u500b\u65b9\u9762\u8a72\u5982\u4f55\u5be6\u73fe\u3002\u7b2c\u4e00\u500b\u8981\u8b1b\u7684\u5c31\u662fshape\uff0c\u6700\u57fa\u790e\u7684\u5f62\u72c0\u5b9a\u7fa9\u5de5\u5177\u3002<\/span><\/p>\n<p class=\"md_block\"><span class=\"md_line\">\u4e00\u822c\u7528shape\u5b9a\u7fa9\u7684xml\u6587\u4ef6\u5b58\u653e\u5728drawable\u76ee\u9304\u4e0b\uff0c\u82e5\u9805\u76ee\u6c92\u6709\u8a72\u76ee\u9304\u5247\u65b0\u5efa\u4e00\u500b\uff0c\u800c\u4e0d\u8981\u5c07\u5b83\u653e\u5230drawable-hdpi\u7b49\u76ee\u9304\u4e2d\u3002<\/span><\/p>\n<p class=\"md_block md_has_block_below md_has_block_below_ul\"><span class=\"md_line\">\u4f7f\u7528shape\u53ef\u4ee5\u81ea\u5b9a\u7fa9\u5f62\u72c0\uff0c\u53ef\u4ee5\u5b9a\u7fa9\u4e0b\u9762\u56db\u7a2e\u985e\u578b\u7684\u5f62\u72c0\uff0c\u901a\u904eandroid:shape\u5c6c\u6027\u6307\u5b9a\uff1a<\/span><\/p>\n<ul>\n<li class=\"md_li\"><strong>rectangle<\/strong>: \u77e9\u5f62\uff0c\u9ed8\u8a8d\u7684\u5f62\u72c0\uff0c\u53ef\u4ee5\u756b\u51fa\u76f4\u89d2\u77e9\u5f62\u3001\u5713\u89d2\u77e9\u5f62\u3001\u5f27\u5f62\u7b49<\/li>\n<li class=\"md_li\"><strong>oval<\/strong>: \u6a62\u5713\u5f62\uff0c\u7528\u5f97\u6bd4\u8f03\u591a\u7684\u662f\u756b\u6b63\u5713<\/li>\n<li class=\"md_li\"><strong>line<\/strong>: \u7dda\u5f62\uff0c\u53ef\u4ee5\u756b\u5be6\u7dda\u548c\u865b\u7dda<\/li>\n<li class=\"md_li\"><strong>ring<\/strong>: \u74b0\u5f62\uff0c\u53ef\u4ee5\u756b\u74b0\u5f62\u9032\u5ea6\u689d<\/li>\n<\/ul>\n<blockquote>\n<h1 id=\"toc_0\">rectangle<\/h1>\n<\/blockquote>\n<p class=\"md_block\"><span class=\"md_line\">rectangle\u662f\u9ed8\u8a8d\u7684\u5f62\u72c0\uff0c\u4e5f\u662f\u7528\u5f97\u6700\u591a\u7684\u5f62\u72c0\uff0c\u4e00\u4e9b\u6587\u5b57\u80cc\u666f\u3001\u6309\u9215\u80cc\u666f\u3001\u63a7\u4ef6\u6216\u4f48\u5c40\u80cc\u666f\u7b49\uff0c\u4ee5\u4e0b\u662f\u4e00\u4e9b\u7c21\u55ae\u7684\u4f8b\u5b50\uff1a<\/span><\/p>\n<p class=\"md_block\"><span class=\"md_line md_line_dom_embed\"><img decoding=\"async\" class=\"md_compiled \" title=\"\" src=\"https:\/\/keeganlee.me\/Android\/_image\/20150830\/S50829-115225.jpg\" alt=\"\" \/><\/span><\/p>\n<p class=\"md_block md_has_block_below md_has_block_below_ul\"><span class=\"md_line\">\u5be6\u73fe\u4e0a\u9762\u7684\u90a3\u4e9b\u6548\u679c\uff0c\u90fd\u7528\u5230\u4e86\u4ee5\u4e0b\u9019\u4e9b\u7279\u6027\uff1a<\/span><\/p>\n<ul>\n<li class=\"md_li\"><strong>solid<\/strong>: \u8a2d\u7f6e\u5f62\u72c0\u586b\u5145\u7684\u984f\u8272\uff0c\u53ea\u6709android:color\u4e00\u500b\u5c6c\u6027\n<ul>\n<li class=\"md_li\"><em>android:color<\/em> \u586b\u5145\u7684\u984f\u8272<\/li>\n<\/ul>\n<\/li>\n<li class=\"md_li\"><strong>padding<\/strong>: \u8a2d\u7f6e\u5167\u5bb9\u8207\u5f62\u72c0\u908a\u754c\u7684\u5167\u9593\u8ddd\uff0c\u53ef\u5206\u5225\u8a2d\u7f6e\u5de6\u53f3\u4e0a\u4e0b\u7684\u8ddd\u96e2\n<ul>\n<li class=\"md_li\"><em>android:left<\/em> \u5de6\u5167\u9593\u8ddd<\/li>\n<li class=\"md_li\"><em>android:right<\/em> \u53f3\u5167\u9593\u8ddd<\/li>\n<li class=\"md_li\"><em>android:top<\/em> \u4e0a\u5167\u9593\u8ddd<\/li>\n<li class=\"md_li\"><em>android:bottom<\/em> \u4e0b\u5167\u9593\u8ddd<\/li>\n<\/ul>\n<\/li>\n<li class=\"md_li\"><strong>gradient<\/strong>: \u8a2d\u7f6e\u5f62\u72c0\u7684\u6f38\u8b8a\u984f\u8272\uff0c\u53ef\u4ee5\u662f\u7dda\u6027\u6f38\u8b8a\u3001\u8f3b\u5c04\u6f38\u8b8a\u3001\u6383\u7784\u6027\u6f38\u8b8a\n<ul>\n<li class=\"md_li\"><em>android:type<\/em> \u6f38\u8b8a\u7684\u985e\u578b\n<ul>\n<li class=\"md_li\"><em>linear<\/em> \u7dda\u6027\u6f38\u8b8a\uff0c\u9ed8\u8a8d\u7684\u6f38\u8b8a\u985e\u578b<\/li>\n<li class=\"md_li\"><em>radial<\/em> \u653e\u5c04\u6f38\u8b8a\uff0c\u8a2d\u7f6e\u8a72\u9805\u6642\uff0candroid:gradientRadius\u4e5f\u5fc5\u9808\u8a2d\u7f6e<\/li>\n<li class=\"md_li\"><em>sweep<\/em> \u6383\u7784\u6027\u6f38\u8b8a<\/li>\n<\/ul>\n<\/li>\n<li class=\"md_li\"><em>android:startColor<\/em> \u6f38\u8b8a\u958b\u59cb\u7684\u984f\u8272<\/li>\n<li class=\"md_li\"><em>android:endColor<\/em> \u6f38\u8b8a\u7d50\u675f\u7684\u984f\u8272<\/li>\n<li class=\"md_li\"><em>android:centerColor<\/em> \u6f38\u8b8a\u4e2d\u9593\u7684\u984f\u8272<\/li>\n<li class=\"md_li\"><em>android:angle<\/em> \u6f38\u8b8a\u7684\u89d2\u5ea6\uff0c\u7dda\u6027\u6f38\u8b8a\u6642\u624d\u6709\u6548\uff0c\u5fc5\u9808\u662f45\u7684\u500d\u6578\uff0c0\u8868\u793a\u5f9e\u5de6\u5230\u53f3\uff0c90\u8868\u793a\u5f9e\u4e0b\u5230\u4e0a<\/li>\n<li class=\"md_li\"><em>android:centerX<\/em> \u6f38\u8b8a\u4e2d\u5fc3\u7684\u76f8\u5c0dX\u5750\u6a19\uff0c\u653e\u5c04\u6f38\u8b8a\u6642\u624d\u6709\u6548\uff0c\u57280.0\u52301.0\u4e4b\u9593\uff0c\u9ed8\u8a8d\u70ba0.5\uff0c\u8868\u793a\u5728\u6b63\u4e2d\u9593<\/li>\n<li class=\"md_li\"><em>android:centerY<\/em> \u6f38\u8b8a\u4e2d\u5fc3\u7684\u76f8\u5c0dX\u5750\u6a19\uff0c\u653e\u5c04\u6f38\u8b8a\u6642\u624d\u6709\u6548\uff0c\u57280.0\u52301.0\u4e4b\u9593\uff0c\u9ed8\u8a8d\u70ba0.5\uff0c\u8868\u793a\u5728\u6b63\u4e2d\u9593<\/li>\n<li class=\"md_li\"><em>android:gradientRadius<\/em> \u6f38\u8b8a\u7684\u534a\u5f91\uff0c\u53ea\u6709\u6f38\u8b8a\u985e\u578b\u70baradial\u6642\u624d\u4f7f\u7528<\/li>\n<li class=\"md_li\"><em>android:useLevel<\/em> \u5982\u679c\u70batrue\uff0c\u5247\u53ef\u5728LevelListDrawable\u4e2d\u4f7f\u7528<\/li>\n<\/ul>\n<\/li>\n<li class=\"md_li\"><strong>corners<\/strong>: \u8a2d\u7f6e\u5713\u89d2\uff0c\u53ea\u9069\u7528\u65bcrectangle\u985e\u578b\uff0c\u53ef\u5206\u5225\u8a2d\u7f6e\u56db\u500b\u89d2\u4e0d\u540c\u534a\u5f91\u7684\u5713\u89d2\uff0c\u7576\u8a2d\u7f6e\u7684\u5713\u89d2\u534a\u5f91\u5f88\u5927\u6642\uff0c\u6bd4\u5982200dp\uff0c\u5c31\u53ef\u8b8a\u6210\u5f27\u5f62\u908a\u4e86\n<ul>\n<li class=\"md_li\"><em>android:radius<\/em> \u5713\u89d2\u534a\u5f91\uff0c\u6703\u88ab\u4e0b\u9762\u6bcf\u500b\u7279\u5b9a\u7684\u5713\u89d2\u5c6c\u6027\u91cd\u5beb<\/li>\n<li class=\"md_li\"><em>android:topLeftRadius<\/em> \u5de6\u4e0a\u89d2\u7684\u534a\u5f91<\/li>\n<li class=\"md_li\"><em>android:topRightRadius<\/em> \u53f3\u4e0a\u89d2\u7684\u534a\u5f91<\/li>\n<li class=\"md_li\"><em>android:bottomLeftRadius<\/em> \u5de6\u4e0b\u89d2\u7684\u534a\u5f91<\/li>\n<li class=\"md_li\"><em>android:bottomRightRadius<\/em> \u53f3\u4e0b\u89d2\u7684\u534a\u5f91<\/li>\n<\/ul>\n<\/li>\n<li class=\"md_li\"><strong>stroke<\/strong>: \u8a2d\u7f6e\u63cf\u908a\uff0c\u53ef\u63cf\u6210\u5be6\u7dda\u6216\u865b\u7dda\u3002\n<ul>\n<li class=\"md_li\"><em>android:color<\/em> \u63cf\u908a\u7684\u984f\u8272<\/li>\n<li class=\"md_li\"><em>android:width<\/em> \u63cf\u908a\u7684\u5bec\u5ea6<\/li>\n<li class=\"md_li\"><em>android:dashWidth<\/em> \u8a2d\u7f6e\u865b\u7dda\u6642\u7684\u6a6b\u7dda\u9577\u5ea6<\/li>\n<li class=\"md_li\"><em>android:dashGap<\/em> \u8a2d\u7f6e\u865b\u7dda\u6642\u7684\u6a6b\u7dda\u4e4b\u9593\u7684\u8ddd\u96e2<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p class=\"md_block\"><span class=\"md_line\">\u63a5\u4e0b\u4f86\u8aaa\u4e0b\u5be6\u969b\u600e\u9ebc\u4f7f\u7528\u3002\u4ee5\u4e0b\u662f\u52a0\u4e86\u865b\u7dda\u63cf\u908a\u7684\u77e9\u5f62\u7684\u7a0b\u5f0f\u78bc\uff0c\u6587\u4ef6\u547d\u540d\u70babg_rectangle_with_stroke_dash.xml\uff0c\u653e\u5728drawable\u76ee\u9304\u4e0b\uff1a<\/span><\/p>\n<div class=\"codehilite code_lang_xml highlight\">\n<pre><span class=\"cp\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;<\/span>\n<span class=\"c\">&lt;!-- android:shape\u6307\u5b9a\u5f62\u72c0\u985e\u578b\uff0c\u9ed8\u8a8d\u70barectangle --&gt;<\/span>\n<span class=\"nt\">&lt;shape<\/span> <span class=\"na\">xmlns:android=<\/span><span class=\"s\">\"http:\/\/schemas.android.com\/apk\/res\/android\"<\/span>\n    <span class=\"na\">android:shape=<\/span><span class=\"s\">\"rectangle\"<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"c\">&lt;!-- solid\u6307\u5b9a\u5f62\u72c0\u7684\u586b\u5145\u8272\uff0c\u53ea\u6709android:color\u4e00\u500b\u5c6c\u6027 --&gt;<\/span>\n    <span class=\"nt\">&lt;solid<\/span> <span class=\"na\">android:color=<\/span><span class=\"s\">\"#2F90BD\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n    <span class=\"c\">&lt;!-- padding\u8a2d\u7f6e\u5167\u5bb9\u5340\u57df\u96e2\u908a\u754c\u7684\u9593\u8ddd --&gt;<\/span>\n    <span class=\"nt\">&lt;padding<\/span>\n        <span class=\"na\">android:bottom=<\/span><span class=\"s\">\"12dp\"<\/span>\n        <span class=\"na\">android:left=<\/span><span class=\"s\">\"12dp\"<\/span>\n        <span class=\"na\">android:right=<\/span><span class=\"s\">\"12dp\"<\/span>\n        <span class=\"na\">android:top=<\/span><span class=\"s\">\"12dp\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n    <span class=\"c\">&lt;!-- corners\u8a2d\u7f6e\u5713\u89d2\uff0c\u53ea\u9069\u7528\u65bcrectangle --&gt;<\/span>\n    <span class=\"nt\">&lt;corners<\/span> <span class=\"na\">android:radius=<\/span><span class=\"s\">\"200dp\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n    <span class=\"c\">&lt;!-- stroke\u8a2d\u7f6e\u63cf\u908a --&gt;<\/span>\n    <span class=\"nt\">&lt;stroke<\/span>\n        <span class=\"na\">android:width=<\/span><span class=\"s\">\"2dp\"<\/span>\n        <span class=\"na\">android:color=<\/span><span class=\"s\">\"@android:color\/darker_gray\"<\/span>\n        <span class=\"na\">android:dashGap=<\/span><span class=\"s\">\"4dp\"<\/span>\n        <span class=\"na\">android:dashWidth=<\/span><span class=\"s\">\"4dp\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n<span class=\"nt\">&lt;\/shape&gt;<\/span>\n<\/pre>\n<\/div>\n<p class=\"md_block\"><span class=\"md_line\">\u63a5\u8457\u5728\u8981\u4f7f\u7528\u7684view\u88e1\u5f15\u7528\u5c31\u53ef\u4ee5\u4e86\uff0c\u4f8b\u5982\u672c\u4f8b\u4e2d\u7528\u505aTextView\u7684background\uff1a<\/span><\/p>\n<div class=\"codehilite code_lang_xml highlight\">\n<pre><span class=\"nt\">&lt;TextView<\/span>\n    <span class=\"na\">android:layout_width=<\/span><span class=\"s\">\"wrap_content\"<\/span>\n    <span class=\"na\">android:layout_height=<\/span><span class=\"s\">\"wrap_content\"<\/span>\n    <span class=\"na\">android:layout_margin=<\/span><span class=\"s\">\"8dp\"<\/span>\n    <span class=\"na\">android:text=<\/span><span class=\"s\">\"\u52a0\u4e86\u865b\u7dda\u63cf\u908a\u7684\u77e9\u5f62\"<\/span>\n    <span class=\"na\">android:textSize=<\/span><span class=\"s\">\"16sp\"<\/span>\n    <span class=\"na\">android:textColor=<\/span><span class=\"s\">\"@android:color\/white\"<\/span>\n    <span class=\"na\">android:background=<\/span><span class=\"s\">\"@drawable\/bg_rectangle_with_stroke_dash\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n<\/pre>\n<\/div>\n<blockquote>\n<h1 id=\"toc_1\">oval<\/h1>\n<\/blockquote>\n<p class=\"md_block\"><span class=\"md_line\">oval\u7528\u4f86\u756b\u6a62\u5713\uff0c\u800c\u5728\u5be6\u969b\u61c9\u7528\u4e2d\uff0c\u66f4\u591a\u662f\u756b\u6b63\u5713\uff0c\u6bd4\u5982\u6d88\u606f\u63d0\u793a\uff0c\u5713\u5f62\u6309\u9215\u7b49\uff0c\u4e0b\u5716\u662f\u4e00\u4e9b\u4f8b\u5b50\uff1a<\/span><\/p>\n<p class=\"md_block\"><span class=\"md_line md_line_dom_embed\"><img decoding=\"async\" class=\"md_compiled \" title=\"\" src=\"https:\/\/keeganlee.me\/Android\/_image\/20150830\/097E4ABF-0D82-4FEA-BC76-F37AB37EB94C.jpeg\" alt=\"\" \/><\/span><\/p>\n<p class=\"md_block md_has_block_below md_has_block_below_ul\"><span class=\"md_line\">\u4e0a\u9762\u7684\u6548\u679c\u5716\u61c9\u7528\u4e86solid\u3001padding\u3001stroke\u3001gradient\u3001size\u5e7e\u500b\u7279\u6027\u3002size\u662f\u7528\u4f86\u8a2d\u7f6e\u5f62\u72c0\u5927\u5c0f\u7684\uff0c\u5982\u4e0b\uff1a<\/span><\/p>\n<ul>\n<li class=\"md_li\"><strong>size<\/strong>: \u8a2d\u7f6e\u5f62\u72c0\u9ed8\u8a8d\u7684\u5927\u5c0f\uff0c\u53ef\u8a2d\u7f6e\u5bec\u5ea6\u548c\u9ad8\u5ea6\n<ul>\n<li class=\"md_li\"><em>android:width<\/em> \u5bec\u5ea6<\/li>\n<li class=\"md_li\"><em>android:height<\/em> \u9ad8\u5ea6<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p class=\"md_block\"><span class=\"md_line\">\u6578\u5b570\u662f\u9ed8\u8a8d\u7684\u6a62\u5713\uff0c\u53ea\u52a0\u4e86solid\u586b\u5145\u984f\u8272\uff0c\u6578\u5b571\u5247\u52a0\u4e86\u4e0a\u4e0b\u5de6\u53f34dp\u7684padding\uff0c\u5f8c\u9762\u7684\u6578\u5b57\u90fd\u662f\u6b63\u5713\uff0c\u662f\u901a\u904e\u8a2d\u7f6esize\u7684\u540c\u6a23\u5927\u5c0f\u7684\u5bec\u9ad8\u5be6\u73fe\u7684\uff0c\u4e5f\u53ef\u4ee5\u901a\u904e\u8a2d\u7f6e\u63a7\u4ef6\u7684\u5bec\u9ad8\u4e00\u81f4\u5927\u5c0f\u4f86\u5be6\u73fe\u3002\u6578\u5b573\u52a0\u4e86\u63cf\u908a\uff0c\u6578\u5b574\u662f\u93e4\u7a7a\u63cf\u908a\uff0c\u6578\u5b575\u662f\u865b\u7dda\u63cf\u908a\uff0c\u6578\u5b576\u7528\u4e86radial\u6f38\u8b8a\u3002\u6ce8\u610f\uff0c\u4f7f\u7528radial\u6f38\u8b8a\u6642\uff0c\u5fc5\u9808\u6307\u5b9a\u6f38\u8b8a\u7684\u534a\u5f91\uff0c\u5373android:gradientRadius\u5c6c\u6027\u3002<\/span><\/p>\n<p class=\"md_block\"><span class=\"md_line\">\u4ee5\u4e0b\u662f\u6f38\u8b8a\u7684\u7a0b\u5f0f\u78bc\u5be6\u73fe\uff0c\u6587\u4ef6\u70babg_oval_with_gradient.xml\uff1a<\/span><\/p>\n<div class=\"codehilite code_lang_xml highlight\">\n<pre><span class=\"cp\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;<\/span>\n<span class=\"c\">&lt;!-- android:shape\u6307\u5b9a\u5f62\u72c0\u985e\u578b\uff0c\u9ed8\u8a8d\u70barectangle --&gt;<\/span>\n<span class=\"nt\">&lt;shape<\/span> <span class=\"na\">xmlns:android=<\/span><span class=\"s\">\"http:\/\/schemas.android.com\/apk\/res\/android\"<\/span>\n    <span class=\"na\">android:shape=<\/span><span class=\"s\">\"oval\"<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"c\">&lt;!-- padding\u8a2d\u7f6e\u5167\u9593\u8ddd --&gt;<\/span>\n    <span class=\"nt\">&lt;padding<\/span>\n        <span class=\"na\">android:bottom=<\/span><span class=\"s\">\"4dp\"<\/span>\n        <span class=\"na\">android:left=<\/span><span class=\"s\">\"4dp\"<\/span>\n        <span class=\"na\">android:right=<\/span><span class=\"s\">\"4dp\"<\/span>\n        <span class=\"na\">android:top=<\/span><span class=\"s\">\"4dp\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n    <span class=\"c\">&lt;!-- size\u8a2d\u7f6e\u5f62\u72c0\u7684\u5927\u5c0f --&gt;<\/span>\n    <span class=\"nt\">&lt;size<\/span>\n        <span class=\"na\">android:width=<\/span><span class=\"s\">\"40dp\"<\/span>\n        <span class=\"na\">android:height=<\/span><span class=\"s\">\"40dp\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n    <span class=\"c\">&lt;!-- gradient\u8a2d\u7f6e\u6f38\u8b8a --&gt;<\/span>\n    <span class=\"nt\">&lt;gradient<\/span>\n        <span class=\"na\">android:endColor=<\/span><span class=\"s\">\"#000000\"<\/span>\n        <span class=\"na\">android:gradientRadius=<\/span><span class=\"s\">\"40dp\"<\/span>\n        <span class=\"na\">android:startColor=<\/span><span class=\"s\">\"#FFFFFF\"<\/span>\n        <span class=\"na\">android:type=<\/span><span class=\"s\">\"radial\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n<span class=\"nt\">&lt;\/shape&gt;<\/span>\n<\/pre>\n<\/div>\n<p class=\"md_block\"><span class=\"md_line\">\u5f15\u7528\u7684\u7a0b\u5f0f\u78bc\uff1a<\/span><\/p>\n<div class=\"codehilite code_lang_xml highlight\">\n<pre><span class=\"nt\">&lt;TextView<\/span>\n    <span class=\"na\">android:layout_width=<\/span><span class=\"s\">\"wrap_content\"<\/span>\n    <span class=\"na\">android:layout_height=<\/span><span class=\"s\">\"wrap_content\"<\/span>\n    <span class=\"na\">android:gravity=<\/span><span class=\"s\">\"center\"<\/span>\n    <span class=\"na\">android:layout_margin=<\/span><span class=\"s\">\"8dp\"<\/span>\n    <span class=\"na\">android:text=<\/span><span class=\"s\">\"6\"<\/span>\n    <span class=\"na\">android:textSize=<\/span><span class=\"s\">\"20sp\"<\/span>\n    <span class=\"na\">android:textColor=<\/span><span class=\"s\">\"@android:color\/black\"<\/span>\n    <span class=\"na\">android:background=<\/span><span class=\"s\">\"@drawable\/bg_oval_with_gradient\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n<\/pre>\n<\/div>\n<blockquote>\n<h1 id=\"toc_2\">line<\/h1>\n<\/blockquote>\n<p class=\"md_block\"><span class=\"md_line md_line_dom_embed\"><img decoding=\"async\" class=\"md_compiled \" title=\"\" src=\"https:\/\/keeganlee.me\/Android\/_image\/20150830\/4C634096-CD97-4C5B-99B4-434CC0951631.jpeg\" alt=\"\" \/><\/span><\/p>\n<p class=\"md_block\"><span class=\"md_line\">line\u4e3b\u8981\u7528\u65bc\u756b\u5206\u5272\u7dda\uff0c\u662f\u901a\u904estroke\u548csize\u7279\u6027\u7d44\u5408\u4f86\u5be6\u73fe\u7684\uff0c\u5148\u770b\u865b\u7dda\u7684\u7a0b\u5f0f\u78bc\uff1a<\/span><\/p>\n<div class=\"codehilite code_lang_xml highlight\">\n<pre><span class=\"cp\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;<\/span>\n<span class=\"nt\">&lt;shape<\/span> <span class=\"na\">xmlns:android=<\/span><span class=\"s\">\"http:\/\/schemas.android.com\/apk\/res\/android\"<\/span>\n    <span class=\"na\">android:shape=<\/span><span class=\"s\">\"line\"<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"c\">&lt;!-- \u5be6\u969b\u986f\u793a\u7684\u7dda --&gt;<\/span>\n    <span class=\"nt\">&lt;stroke<\/span>\n        <span class=\"na\">android:width=<\/span><span class=\"s\">\"1dp\"<\/span>\n        <span class=\"na\">android:color=<\/span><span class=\"s\">\"#2F90BD\"<\/span>\n        <span class=\"na\">android:dashGap=<\/span><span class=\"s\">\"2dp\"<\/span>\n        <span class=\"na\">android:dashWidth=<\/span><span class=\"s\">\"4dp\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n    <span class=\"c\">&lt;!-- \u5f62\u72c0\u7684\u9ad8\u5ea6 --&gt;<\/span>\n    <span class=\"nt\">&lt;size<\/span> <span class=\"na\">android:height=<\/span><span class=\"s\">\"4dp\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n<span class=\"nt\">&lt;\/shape&gt;<\/span>\n<\/pre>\n<\/div>\n<p class=\"md_block md_has_block_below md_has_block_below_ol\"><span class=\"md_line\">\u756b\u7dda\u6642\uff0c\u6709\u5e7e\u9ede\u7279\u6027\u5fc5\u9808\u8981\u77e5\u9053\u7684\uff1a<\/span><\/p>\n<ol>\n<li class=\"md_li\">\u53ea\u80fd\u756b\u6c34\u5e73\u7dda\uff0c\u756b\u4e0d\u4e86\u8c4e\u7dda\uff1b<\/li>\n<li class=\"md_li\">\u7dda\u7684\u9ad8\u5ea6\u662f\u901a\u904estroke\u7684android:width\u5c6c\u6027\u8a2d\u7f6e\u7684\uff1b<\/li>\n<li class=\"md_li\">size\u7684android:height\u5c6c\u6027\u5b9a\u7fa9\u7684\u662f\u6574\u500b\u5f62\u72c0\u5340\u57df\u7684\u9ad8\u5ea6\uff1b<\/li>\n<li class=\"md_li\">size\u7684height\u5fc5\u9808\u5927\u65bcstroke\u7684width\uff0c\u5426\u5247\uff0c\u7dda\u7121\u6cd5\u986f\u793a\uff1b<\/li>\n<li class=\"md_li\">\u7dda\u5728\u6574\u500b\u5f62\u72c0\u5340\u57df\u4e2d\u662f\u5c45\u4e2d\u986f\u793a\u7684\uff1b<\/li>\n<li class=\"md_li\">\u7dda\u5de6\u53f3\u5169\u908a\u6703\u7559\u6709\u7a7a\u767d\u9593\u8ddd\uff0c\u7dda\u8d8a\u7c97\uff0c\u7a7a\u767d\u8d8a\u5927\uff1b<\/li>\n<li class=\"md_li\">\u5f15\u7528\u865b\u7dda\u7684view\u9700\u8981\u6dfb\u52a0\u5c6c\u6027android:layerType\uff0c\u503c\u8a2d\u70ba&#8221;software&#8221;\uff0c\u5426\u5247\u986f\u793a\u4e0d\u4e86\u865b\u7dda\u3002<\/li>\n<\/ol>\n<blockquote>\n<h1 id=\"toc_3\">ring<\/h1>\n<\/blockquote>\n<p class=\"md_block md_has_block_below md_has_block_below_ul\"><span class=\"md_line\">\u9996\u5148\uff0cshape\u6839\u5143\u7d20\u6709\u4e9b\u5c6c\u6027\u53ea\u9069\u7528\u65bcring\u985e\u578b\uff0c\u5148\u904e\u76ee\u4e0b\u9019\u4e9b\u5c6c\u6027\u5427\uff1a<\/span><\/p>\n<ul>\n<li class=\"md_li\"><em>android:innerRadius<\/em> \u5167\u74b0\u7684\u534a\u5f91<\/li>\n<li class=\"md_li\"><em>android:innerRadiusRatio<\/em> \u6d6e\u9ede\u578b\uff0c\u4ee5\u74b0\u7684\u5bec\u5ea6\u6bd4\u7387\u4f86\u8868\u793a\u5167\u74b0\u7684\u534a\u5f91\uff0c\u9ed8\u8a8d\u70ba3\uff0c\u8868\u793a\u5167\u74b0\u534a\u5f91\u70ba\u74b0\u7684\u5bec\u5ea6\u9664\u4ee53\uff0c\u8a72\u503c\u6703\u88abandroid:innerRadius\u8986\u84cb<\/li>\n<li class=\"md_li\"><em>android:thickness<\/em> \u74b0\u7684\u539a\u5ea6<\/li>\n<li class=\"md_li\"><em>android:thicknessRatio<\/em> \u6d6e\u9ede\u578b\uff0c\u4ee5\u74b0\u7684\u5bec\u5ea6\u6bd4\u7387\u4f86\u8868\u793a\u74b0\u7684\u539a\u5ea6\uff0c\u9ed8\u8a8d\u70ba9\uff0c\u8868\u793a\u74b0\u7684\u539a\u5ea6\u70ba\u74b0\u7684\u5bec\u5ea6\u9664\u4ee59\uff0c\u8a72\u503c\u6703\u88abandroid:thickness\u8986\u84cb<\/li>\n<li class=\"md_li\"><em>android:useLevel<\/em> \u4e00\u822c\u70bafalse\uff0c\u5426\u5247\u53ef\u80fd\u74b0\u5f62\u7121\u6cd5\u986f\u793a\uff0c\u53ea\u6709\u4f5c\u70baLevelListDrawable\u4f7f\u7528\u6642\u624d\u8a2d\u70batrue<\/li>\n<\/ul>\n<p class=\"md_block\"><span class=\"md_line md_line_dom_embed\"><img decoding=\"async\" class=\"md_compiled \" title=\"\" src=\"https:\/\/keeganlee.me\/Android\/_image\/20150830\/C89E4D64-2A95-45C1-B4A9-4FC03EE18F4F.jpeg\" alt=\"\" \/><\/span><\/p>\n<p class=\"md_block\"><span class=\"md_line\">\u7b2c\u4e00\u500b\u5716\u53ea\u6dfb\u52a0\u4e86solid\uff1b\u7b2c\u4e8c\u500b\u5716\u53ea\u6dfb\u52a0\u4e86gradient\uff0c\u985e\u578b\u70basweep\uff1b\u7b2c\u4e09\u500b\u5716\u53ea\u6dfb\u52a0\u4e86stroke\uff1b\u7b2c\u56db\u500b\u5716\u6dfb\u52a0\u4e86gradient\u548cstroke\u5169\u9805\u7279\u6027\u3002<\/span> <span class=\"md_line\">\u4ee5\u4e0b\u70ba\u7b2c\u56db\u500b\u5716\u7684\u7a0b\u5f0f\u78bc\uff1a<\/span><\/p>\n<div class=\"codehilite code_lang_xml highlight\">\n<pre><span class=\"cp\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;<\/span>\n<span class=\"nt\">&lt;shape<\/span> <span class=\"na\">xmlns:android=<\/span><span class=\"s\">\"http:\/\/schemas.android.com\/apk\/res\/android\"<\/span>\n    <span class=\"na\">android:innerRadiusRatio=<\/span><span class=\"s\">\"3\"<\/span>\n    <span class=\"na\">android:shape=<\/span><span class=\"s\">\"ring\"<\/span>\n    <span class=\"na\">android:thicknessRatio=<\/span><span class=\"s\">\"9\"<\/span>\n    <span class=\"na\">android:useLevel=<\/span><span class=\"s\">\"false\"<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"nt\">&lt;gradient<\/span>\n        <span class=\"na\">android:endColor=<\/span><span class=\"s\">\"#2F90BD\"<\/span>\n        <span class=\"na\">android:startColor=<\/span><span class=\"s\">\"#FFFFFF\"<\/span>\n        <span class=\"na\">android:type=<\/span><span class=\"s\">\"sweep\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n    <span class=\"nt\">&lt;stroke<\/span>\n        <span class=\"na\">android:width=<\/span><span class=\"s\">\"1dp\"<\/span>\n        <span class=\"na\">android:color=<\/span><span class=\"s\">\"@android:color\/black\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n<span class=\"nt\">&lt;\/shape&gt;<\/span>\n<\/pre>\n<\/div>\n<p class=\"md_block\"><span class=\"md_line\">\u5982\u679c\u60f3\u8b93\u9019\u500b\u74b0\u5f62\u65cb\u8f49\u8d77\u4f86\uff0c\u8b8a\u6210\u53ef\u7528\u7684\u9032\u5ea6\u689d\uff0c\u5247\u53ea\u8981\u5728shape\u5916\u5c64\u5305\u591a\u4e00\u500brotate\u5143\u7d20\u5c31\u53ef\u4ee5\u4e86\u3002<\/span><\/p>\n<div class=\"codehilite code_lang_xml highlight\">\n<pre><span class=\"cp\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;<\/span>\n<span class=\"nt\">&lt;rotate<\/span> <span class=\"na\">xmlns:android=<\/span><span class=\"s\">\"http:\/\/schemas.android.com\/apk\/res\/android\"<\/span>\n    <span class=\"na\">android:fromDegrees=<\/span><span class=\"s\">\"0\"<\/span>\n    <span class=\"na\">android:pivotX=<\/span><span class=\"s\">\"50%\"<\/span>\n    <span class=\"na\">android:pivotY=<\/span><span class=\"s\">\"50%\"<\/span>\n    <span class=\"na\">android:toDegrees=<\/span><span class=\"s\">\"1080.0\"<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"nt\">&lt;shape<\/span>\n        <span class=\"na\">android:innerRadiusRatio=<\/span><span class=\"s\">\"3\"<\/span>\n        <span class=\"na\">android:shape=<\/span><span class=\"s\">\"ring\"<\/span>\n        <span class=\"na\">android:thicknessRatio=<\/span><span class=\"s\">\"8\"<\/span>\n        <span class=\"na\">android:useLevel=<\/span><span class=\"s\">\"false\"<\/span><span class=\"nt\">&gt;<\/span>\n        <span class=\"nt\">&lt;gradient<\/span>\n            <span class=\"na\">android:endColor=<\/span><span class=\"s\">\"#2F90BD\"<\/span>\n            <span class=\"na\">android:startColor=<\/span><span class=\"s\">\"#FFFFFF\"<\/span>\n            <span class=\"na\">android:type=<\/span><span class=\"s\">\"sweep\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n    <span class=\"nt\">&lt;\/shape&gt;<\/span>\n<span class=\"nt\">&lt;\/rotate&gt;<\/span>\n<\/pre>\n<\/div>\n<blockquote>\n<p class=\"md_block\"><span class=\"md_line\">\u7d50\u5c3e<\/span><\/p>\n<\/blockquote>\n<p class=\"md_block\"><span class=\"md_line\">shape\u7bc7\u5c31\u8b1b\u5230\u9019\u88e1\u4e86\uff0c\u7a0b\u5f0f\u78bc\u4e5f\u5df2\u7d93\u653e\u4e0agithub\uff0c\u5730\u5740\uff1a<\/span> <span class=\"md_line md_line_dom_embed\"><a class=\"md_compiled\" href=\"https:\/\/github.com\/keeganlee\/kstyle.git\">https:\/\/github.com\/keeganlee\/kstyle.git<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8f49\u8f09\u81eaKeegan\u5c0f\u92fc \u539f\u6587\u9023\u7d50\uff1ahttp:\/\/keeganlee.me\/post\/android\/20150 &hellip; <\/p>\n","protected":false},"author":1,"featured_media":299,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[10],"class_list":["post-722","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-2","tag-android-app"],"_links":{"self":[{"href":"https:\/\/blog.ray650128.com\/index.php?rest_route=\/wp\/v2\/posts\/722","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ray650128.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ray650128.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ray650128.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ray650128.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=722"}],"version-history":[{"count":0,"href":"https:\/\/blog.ray650128.com\/index.php?rest_route=\/wp\/v2\/posts\/722\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.ray650128.com\/index.php?rest_route=\/"}],"wp:attachment":[{"href":"https:\/\/blog.ray650128.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ray650128.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ray650128.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}