android 自定义控件——(四)圆形进度条

----------------------------------↓↓圆形进度条(源代码下有属性解释)↓↓-----------------------------------------------------

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABDgAAAG5CAMAAABcGnRnAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkY2NDRFRjg4OUY0NTExRTY5NkRDOUMzNTY5MUJGRDlCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkY2NDRFRjg5OUY0NTExRTY5NkRDOUMzNTY5MUJGRDlCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjY0NEVGODY5RjQ1MTFFNjk2REM5QzM1NjkxQkZEOUIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjY0NEVGODc5RjQ1MTFFNjk2REM5QzM1NjkxQkZEOUIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5Xn4g/AAABgFBMVEWS3P+q4/////+Y3f9SYry86f/r+f961P/T8f+k4f9mdMSM2v/MzMzq7e900v/FxcXW1tZizP/R0dFcyv/o7PXJycnU1NTS0tLi7PHd3d3w8fmmrt2B1v/Hx8fh4eHd6/Fpzv/Dw8PDyeicpdmzuuLm5ubs9fm9w+Xt8PFSx//5/f+n3fjg9f90gcqIk9Hk9v/BwcHJ7f/X8v/W6fLd9P/U2O7v+v+w5f/1/P/F7P/AwMC/6v+05//M7v/l5/Xa2trF5PTT7Pnx8vPb3vHK5fOTndW65fv8/v+84vWAjM7l7PCK1vr6+/1WyP/N0uxu0P/f4vL1+v2G2P+x4vnN6PVzz/y14Pb8/P6e3//i8fhPxv/b7fbn7/PQ5/Lr7ff19vrP6vjn8/nG6Pjc8v636P/E6vzJ6fnN7PvP8P/C6//Y8Puu3/fB5fe34vf3+fzo+P/c8Pq05PuT2Pra8//y+//x9/owP5/h8/y/v7/Z2dnY2NjPz8/Ozs6c2vk/UbXu7u7u5hs9AAAXm0lEQVR42uzdi1/TVtyA8QpVpBheL9N1FFcsnTBZu2mHNyZDoEALo0xEcIp4mzcQR9XX1wv2X3+TNklzTk4LlQZN+nyZn22CIbPL4+8kaRv6XwBoUIjfAgCEAwDhAPANhuMzADSIcAAgHAAIBwDCAYBwACAcAEA4ABAOAIQDAOEAQDgAgHAAIBwACAcAwgGAcAAA4QBAOAAQDgCEAwDhAEA4AIBwACAcAAgHAMIBgHAAAOEAQDgAEA4AhAMA4QAAwgGAcAAgHAAIBwDCAQCEAwDhAEA4ABAOAIQDAOEAAMIBgHAAIBwACAcAwgEAhAMA4QBAOAAQDgCEAwAIBwDCAYBwACAcAAgHABAOAIQDAOEAEKBw9LeVTdT5kp7Kl+T4DQYIB+EA4J9wxOZ3EuGxBAiHaLhtJykeS4BwEA6AcPggHLlYGedlAMKxewOVDQ3wPwVAOAgH0KrhyGUd5isb73H+XDZMOADCUUeysvF7Td4s4QAIB+EACAfhAAIUjnAql06Fdx2OSCqdztW5yzOsfz4V3mM4yt8kXPtb5NI5xfcgHMD+hCPcP7Fc/ufRZGQX4cjOmz+/NtyvOq7DsYXK5haS+qfDw2XpBsORTpjf5F4irWhK0vwWbaOJ6t4NGN/onvnLyt+VO9gBr8KRvle9HLoZ2ykc2e+cl097Yu7t9lQ/vRb7nKr8U39D4UgvOL/JgnSRNjIvXMIdtcqywI2owH6Fo39aONaGw/XCEXbdirEQUS4VLIls4+EIS9toWxbylN2U9yFBOID9DYfrKByuE47IqPuerR7h6EzIn77XcDjCivvEkq79FswTDmBfw+EWqxmO8Heqr++J7GKjDYRDeX+pfaIjt6z6dJJwAPsdjuWJ+cS8fWpiM1IrHPa5hZ5EMpmwf0H1im5kzd7IcCIxsfkl4Uja5y4GYsl5a4P3rBWUNfPMZyPhSHbC+i8wEhFL6Eatk6YGTo4CXoVj2byW0r8mDP7ucKStKJgVyK7JM4q1UJmLlY/zcGyz4XBElq1b0cXzHeZiJWfuc9b88libdPmVy7HAfoRjzl4FRMxQzIXV4TAXKpv2AiBlfkGP+QvCc+YGcvJX7D4c5lSzZg8LZhp6anQhIXyacAD7Ew7HFYu0dJSL4bA+m63+gpy4jZi7EukGwxGZdn2TBefPzEunPKzLvW1hwgHsXziEA3dCvLAihmNecY+6+XMLwiE+6vyKhcbCkRQ2WFkROa+5Tsjh+DxaESEcwP6FY0Lxcz2qcITXXLOAPXJMV05pbLpmmIbDMer+8vCyI0fzwp0bCoQD2O9wRMy5P6IIR046AVLhvE3DXDVMR748HBFp4eH4Hsth52ooGSYcwDcSjs9rwkpACEdMsQ6xJ4BkrcVPg+FIq35ywnFTRmTOups9kQ4TDuCbCIdwIlIMx4B0rVY4/BOOtAzvIRzmJuZGnTadu5Gs3hsyN5F0x4NwAPsejgnhMBfCkVAekc6tJFXnHxoLR7LO65GmhRnHiof8DF3CAex7OOaF05tCOOZdzxoxZB1XQZTHbGPhGKgTjmyNr1kTzncQDuBrhSNZOxyxHcOR9Dgcn3MT8rNlcoQD+IrhGK49cSSUE4diqeL1xGGkI7EmPu8+SziArxeOhdrnONRHZMxxyjTWtHMcozEF8RlrueSwIx5zKcIBfLVw3Nvxcqx4zUQ4ZbqLFO0Ujpj7xtE6UsnvXK8iQjiA/Q5HWHwdCyEcaenZZEIXymsb8xaxtT2Ew/wmm7t+Y6Zsj3TXGeEA9jsc1nH7WREO885v8cVxIs7SWF+R+/JwhNsU97XXnzqWlddcCAfgZTgWFAuPBVU4rAQMKJYWPcJXJL48HNaX13q3l4npMme8xPO5hAPYj3A45wPrfu6kMhzWXZ2Ok5TWE98GhBYsO47ryGZj4YgpR44BqwOKa8IJ8RsM7PQsOABNCMc9OwT2qwRHlOGwKjERlv+0t5Yv1otpjNpfEV5o8PU4rNcC2syJX5oQujIads0oaXGzw/xPAXgZjrbvUlI37HWC9Apg1v3gE2ZYwvNt0h/vw9J7JqRGG37pQOubzNm/IlVOw3y5FdYLCybk/4zlsDiyLPNyo4Cn4dD/eI6l09nqPVW5GuEIWxlYG0inUrmk9bKA1Zf5s85Uts3N96ezseHpxl+s2P4mbaPJXCSVjk0IdbJe1XQ0WwnJwLT03DvrJcd6ktlsjFc5B7wLh/Ltjdzh+Jya2+mWzuTe3x4htabcgHmLV9h+27nl0YWFHvcNYOG5ut8VQDPC0eN6B6VIzXB8zi7XfR8W/bCd2Pv7quQ2Vd2wzmGkNuu/F4zw7FnCAXgTjv752m/M5n4LyLRrHJgTD86w9K5IC6ONvwVk6p77TZ9y9T677Nx6ZJNwAF6HIxcemK71VrCKN52OSO+zNiGfRggLbwI5H15oPByfwwPiZDMtvLNSOCHNPdKbUmfnCAfgcTj0QzI3bB2Jo+KRpnq3+s+5efvAnJtPKzacs9uykJZfU2x34dD7lKzOFT0DcpwiA9UFlmIfqk+7z/K/BtDccAh/xGdjA4lk/y4vQoRzsWQikYzlaj2jJJJNJgaS/eUx4Z4qPruhb2TA2Ip6p1LWZ5X7kOo3diDLJVnAy3B4R/kMFwCEo56Gn+4KoPXCEZbOVE5wBzhAOHYyLFzPtW8Ii/EYAYSjFiMUywPWuiRsvYRoDysVgHDUkq0+UyWVyw6stTFwAIRjJwn1/ebzPEIA4agpPKzqxgILFYBw1JN0Pw0uQTcAwlFfSho67vF8EYBw7CIdA/a7nawN82wRgHDsUiQdS8b6s9xnDhAOAIQDAOEAAMIBgHAAIBwACAcAwgEAhAMA4QBAOAAQDgCEAwAIBwDCAYBwACAcAAgHABAOAIQDAOEAQDgAEA4AhAMACAcAwgGAcAAgHAAIBwAQDgCEAwDhAEA4ABAOACAcAAgHAMIBgHAAIBwAQDgAEA4AhAMA4QBAOAAQDgAgHAAIBwDCAcDH4Th58vT/6M6c+e23q/8HADVc/e23M2eMWpw+edIIh1mOM79dvUo7AKiqcfWqno1KN4xwHDlipMNqhz53AIDsjF0NPRtHjoQ+GeUw1ytmPABAZAbitFGLI0c+hT5+1NNhtOO01Q4AUDhtZuPIx4+EA0AD4dBz8UkPx/Hjdjp2cLph/E4DX+UAb8zJXTli+vTp4/HjoVPfHy/7+Ml0pL6TAILiyE4+2T5+rJTie8Op0FHdqTKzIOWK2HYMCYDAKAfCVO3B8e9PWY5WfAj9+eef799/OGqzv8IZEnVSdjmjAPh2wmDND4o+2J2ohuJUNQ1HP7x///7Pih9CP1SU+1HxwZERZ0hOfW+pGxQxKgC+GuGoVAXCckpZinIqTHosqn78MfTjjz9W/92RD6kfroqcqlORGjkBsF9qHZOKVrgP9KMfPjiKITWjLGT+3VEPIR96PypqBkSYRXYICYB9971ysnAlwzrUayXDaobup59CP/1U/VdnPX7401IzH8qGqFoC4KtQHpuK+aJaDPu4/0HdDD0ahlDlb7XqIeZDmEGO1nAKwDelxqEqDRjvlclwN6NWONz1UOVj54IA+BbJwag1ZvwgV0ERjkbq4SqIYy0D4BsmHrbOQ3rXzXCHQxUPqR6ugigiAuAbJh2/rgN8p2iUw1ECgAYRDgCEAwDhAEA4ABAOAIQDAAgHAMIBgHAAIBwACAcAEA4AhAMA4QBAOAAQDgAgHAAIBwDCAYBwACAcAAgHABAOAIQDAOEAQDgAEA4AIBwACAcAwgGAcAAgHABAOAAQDgCEAwDhAEA4AIBwACAcAAgHAMIBgHAAIBwAQDgAEA4AhAMA4QBAOACAcAAgHAAIBwDCAYBwAADhAEA4ABAOAIQDAOEAAMIBgHAAIBwACAcAwgGAcAAA4QBAOAAQDgCEAwDhAADCAYBwACAcAAgHAMIBAIQDAOEAQDgAEA4AhAMACAcAwgGAcAAgHAAIBwDCAQCEAwDhANCq4YhmMvFSfHVycjKT57cfIBz1adFo/NbQdnG2t+9E39JSR0H/sdRbXBsf51EACIeyGmO31reXThw79pfuZ9M/+l//tLUtz22ukQ+AcAjy+fj6bHffib9M1W78848Rjra26WUjHqQDIBym+Nit2WPHThjscpjt+McKR9t02TniARAOIxsz+gKlUo16E0elG+fOGXMH7QBaOhxa/tbsUmXYECeOn6WJY9oux7lzfzN1AC0cDi0+s9TnyEbtbrQ5uqG7/Pf4IA8M0JLhiM9Ypzbc5XCc43AMHNVyXH77lrEDaL1w5Me2C3o3jp3YxcQhVUPvxuXLf79l6gBaLRyZ7Y5jFTuVo61GOS6/eUs5gFYKhzY526fohl2OXUwcejguv2HoAFonHJmhgtUNaeI4Ue8cR/UMh1mON2840wG0SDi0yWI1G3XPcqgmjsvOblAOoEXCob3sdXRDfZZDeY7jnDhxvHljloPlChD4cOSHlo7t1I2/6qxULovdeHPx4lnKAQQ8HNFiQZo3XOXQFy8/H+tbWlrqO6EaOISVCuUAgh8OLbPd5+6GsxzHZovb6zOZzOTk2OrqZGZ1Zm1zc3m5zrxhoBxAgMOhjc326Y6pZ45jhaXtsVXFq36Nj4+vbc7VLQenSIGghsO4e6NM1Y3C7PaYVtJq/NJBox2uM6MXzW5QDiCw4bC7oShHYXsmo+3w6wfH1/6u3vvlmDcuXjx0iNUKEMxwTM4W+tTlWBpajWq72cTg+Nu/XfPGIeODcgCBDEfGnjekcnRsr2rabrcy/vbtm8vyvKF349ArygEELxzxYl+fqhyF4pjW0IYG375RdEN3lscKCFg44kOFPlU5lmaiDW9r/K3UjUo5XlEOIFjhiN7q7utzl6OvuKp9wdYGz168KM8bRjlYrACBCsdMb6HPrWM9+oXbG3/r7ganOYBghWNytlBwl2N2TPviLQ6+dXfjFeUAAhSOaLG7UObMRqE4uZdtlpcrhxzleGV4wOMFBCUctxTdWNrOaHva6ODZQ1I1dL8ycgABCUe8o2CzwzEU3+tmjXIcksvxgHIAgQhHdKhQcJVjKNqEXTsrVcMYOVisAEEIR36moyCXo7DdjG7oM8ercjeqKxU9HIwcQADCsVosFKRyFIrx5uxbebXiqIaBcgD+D4e23lGQFTPN2jm9HI5lSqUchAPwfTgyxUK31I293L+hWK0I1TBGDo0HDfB5ONY7urvFcnRsNPPIPvvKVQ5GDsDn4Yj2dhe6xZljPdrM3auMHL8KeNAAX4dDm+muqLZjNtrc/Rt0dePXuzxqgJ/DEd/ulsrRMdbsHRz8VcaFFcDX4Rjr6HYqFLq3m37qcvCBqxyMHICPwxEdclbD+Jhdbf4eSuX4hZED8HU4VovdknUvrpU+ELvxyy/vCAfg33C87JW6UVz1YhcHq83Qq2FgrQL4NxzFDikcL/Oe7OMDx7RRxlPdAN+GQ5O70Rv3Zh8H31WbUcFaBfBpOLRJ+QzHkEf7OPhA6gYjB+DXcORfSt1o/j0clrvvxG788o4HDvBnODLbHbru6nqlWc+mV44cTr//8o7To4A/wzFZNKpRLUfHunfPW31gFUP/MBAOwKfhuNXb0VGZOSpzx40N7/ayslaxu/H774QD8Gc4hjo6hHJsZzzczXfVZpTd5roK4MtwbHeIhqIe7uaD30XcPAr4MhxaUexG96SXL811107Go/KPR4QD8GM4Mr3SxLHq5W7efSQMHK85yQH4MhyTUjdueHmKozR4uzJrvDY+dL9zCxjgx3DMSOHY9vZFhG9b1Sh34/Xr2zx0gA/DsS6FY93b/bz96LWAcAB+DId8UWXG2/28K4eDs6NAAMIx6XE4xG685nosEIRwZLzdz0EpHI946AD/hSMv3cbREfd2P7VHry9UP3Q8dID/whEvdhg3ctg3c/R6PHHcfVTpheUR7wQJ+C8cmWJvh/Nj1utw/HdB8B/hAHwYju1ewfZ+h4NbRwH/hWO1KIajuOrtfmqEA/B/OOLFfZ44XojheEE4AB+Go0uaOLwOx4ULh50fnBwFfBiOktiN3q64t/s5WO7FBfvHCx46wH/hyEsTR6/H4bh7uOKC+eM/HjrAh0uVIbEbNzw+OWqFo9yNC4QDCEQ4ujx+klv0sIhwAH5cqixKE8ctb/fzPykcPK0e8GE4SlI4ete9vczx4pkYjigPHeDDcLy0z47eMD5uDMW93M27hw+L5eA2DsCP4RjrspqhV0MX8vRGjrvPyg5XPnTcxgH4MRzRG2YxLKuevj2Csxt6ObiNA/BlOPKhG6KXHoZD+++ZiIsqgD/DsSiFw8uXOc+/ELvB1VjAn+HQNqRwtHt4C1j0sBSOOzxygB/DURqT1ipdHq5V7kgrFZ4bC/g0HJltaeTw7oKsdv3atWuEAwhAOLQhKRyhm16NHNFn14xyVNtxm6uxgD/DUdroci5UbnR1vcx7tVK5ZrLawcAB+DUcUfskR1dFu0f3gGnPrlWVw8HjBvg1HPmh6rRRnji6ZrxZQdw5f03wjNu/AN+GQxuzi2GNHHEvdvHu9fNiOZ5xMRbwbThKmXapHCFPrsjeOV9WDcd1TnEA/g1HfrFLsu3BTWDGwGF0o1qOO1xTAfwbjtJku7BS0S02/8LKi/NV5W485bU4AD+HIzokjxztk82eBqLnz0vluM7AAfg5HKWxkFyOlSZfktWenpdcY+AA/B0OrV2oRqgrFFpv6mJFu3PlihSOZwwcgM/DMdblKsdGMw/s6Pkrejmc7bjGtVjA5+EQznIY1dCtNPHKSvTplStSObgWC/g+HKWb7VI3QqEDmWbNHPnrVyzVgYOVCuD7cJj3ctjVMCzGm7NvWrUbdjkYOIAAhKO0uuIqR3tzniard+O5ztEOvR5RBg4gAOHQXobEecMox0YTyqFdf17uxnNnN7iHAwhEOErxdUU5ZvZcDrMb0sxBN4BghKOUaQ9J2ttDL/d4m1ZeX6eMPJdnDi7FAkEJhzYjd8P42NsZ0ujT5yM6ceY4/5SBAwhKOErxRbkbhq0vv59Diz8ZqRDKwbPbgACFo5TpdHejvf3A6hee6NDu/Dsy4i7HUxYqQJDCkR9rd5zfsHWOfUk5tOjTkYMHD5rdcJSDW7+AQIWjVNpod57fsB1o/Lmy+rhxsEyaOa5wJRYIWji0xXZxnWINHVMN3n8evz9idkOaOegGELhwlKLlcsjdWFnpXHwY3/0hH71vjhuucjzlVnMgeOEoxQ+EpGoY3dB1bt3c3dUQLXp95ODjg9VyjFTLwQUVIJDhKGXW26WJY6VSjpWVAxuZ/A5jh5aP3z/4uEKeOUboBhDUcJQyB2p0wxg7FjdW47XioRmnNp5Y2XDPHHQDCG44NL0c7TXL0XlgaiMTd5/v0PJR44To4z/++KNGOegGEOBwiOVwVsPoRsWlqYf3M9F8PB6Nx+N5fXly/8nDqUuX/qh4rFyr3M/zMAHBDYdx87nr3KhUDn3yMGxNTU1tXTpwaeuSSV0OvR3P73MdFgh2OEr5mZW6E4fZDZNeDnU3quUY4f4NIPDhKOUfdlrdaFd1QyrHpfoTx8i/PD8FaIFwlPI3F+vMG7vrhl2Op7xSINAS4SiVMosrzSnHyHVOiwKtEo5SfqxzZWVX3ai9VtHL8YSrsEALhUNPx0bNcNSYOFxXZP/lKizQYuEo5W9ude5p4rgf5+wG0GrhKGnxh4udqoFDKEetsxxPeNEeoBXDoYtudO7QDffEUS7HyB1WKUCrhsNYsEx1dtZeqSjXKgcfZnhUgFYOR0mLZja2DjQwcRy8zyIFaPVwGFNH5uFWzYlDOMfx+PHDDKdEAcJhDR6Zm1NbBw7UW6lMHfz3el4jGwDhqJZDi2eebOjxUJRja+vS4yeZTJzHAiAcStHMzYcbU8ZT6stPq9+aevjkyf2MPmkwagCEY6cBxHgZn2i+pOXzFAMgHAAIBwAQDgCEAwDhAEA4ABAOACAcAAgHAMIBgHAAIBwACAcAEA4AhAMA4QBAOAAQDgAgHAAIBwDCAYBwACAcAEA4ABAOAIQDAOEAQDgAgHAAIBwACAcAwgGAcABoVf8vwAALJl4fEleFrAAAAABJRU5ErkJggg==" alt="" width="408" height="166" />

一、shape 样式:(在drawable新建--》new--》Drawable resource file 并把原父级标签selector改为shape )


<?xml version="1.0" encoding="utf-8"?>
<!--把shape嵌套在rotate里面实现环形旋转-->
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="1080.0"
>
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thicknessRatio="9"
android:useLevel="false">
<gradient
android:startColor="#ffffff"
android:endColor="#4ec5ff"
android:type="sweep" />
</shape>
</rotate>
二、style 样式:
<style name="ring">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:indeterminateDrawable">@drawable/buttonringstyle</item>
</style> 三、Button控件调用style样式:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/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="com.example.ly.blogtest.MainActivity">
<ProgressBar
style="@style/ring"
android:id="@+id/progressBar"
/>

</RelativeLayout>

----------------------------------↑↑↑↑圆形进度条↑↑↑↑↑-----------------------------------------------------

----------------------------------↓↓↓android:shape属性指定形状↓↓↓------------------------------

  • rectangle: 矩形,默认的形状,可以画出直角矩形、圆角矩形、弧形等
  • oval: 椭圆形,用得比较多的是画正圆
  • line: 线形,可以画实线和虚线
  • ring: 环形,可以画环形进度条

----------------------------------↑↑↑android:shape属性指定形状↑↑↑------------------------------

----------------------------------↓↓↓只适用于ring的特殊属性↓↓----------------------------------

注:shape中有一些特殊属性只适用于ring:

  • android:innerRadius 内环的半径
  • android:innerRadiusRatio 浮点型,以环的宽度比率来表示内环的半径,默认为3,表示内环半径为环的宽度除以3,该值会被android:innerRadius覆盖
  • android:thickness 环的厚度
  • android:thicknessRatio 浮点型,以环的宽度比率来表示环的厚度,默认为9,表示环的厚度为环的宽度除以9,该值会被android:thickness覆盖
  • android:useLevel 一般为false,否则可能环形无法显示,只有作为LevelListDrawable使用时才设为true

----------------------------------↑↑↑只适用于ring的特殊属性↑↑↑----------------------------------

----------------------------------↓↓shape的属性标签↓↓-----------------------------------------

<shape>
            <!-- 实心 -->
            <solid android:color="#ff9d77"/>
            <!-- 渐变 -->
            <gradient
                android:startColor="#ff8c00"
                android:endColor="#FFFFFF"
                android:angle="270" />
            <!-- 描边 -->
            <stroke
                android:width="2dp"
                android:color="#dcdcdc" />
            <!-- 圆角 -->
            <corners
                android:radius="2dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>

  • solid: 设置形状填充的颜色,只有android:color一个属性

    • android:color 填充的颜色
  • padding: 设置内容与形状边界的内间距,可分别设置左右上下的距离

    • android:left 左内间距
    • android:right 右内间距
    • android:top 上内间距
    • android:bottom 下内间距
  • gradient: 设置形状的渐变颜色,可以是线性渐变、辐射渐变、扫描性渐变

    • android:type 渐变的类型
      • linear 线性渐变,默认的渐变类型
      • radial 放射渐变,设置该项时,android:gradientRadius也必须设置
      • sweep 扫描性渐变
    • android:startColor 渐变开始的颜色
    • android:endColor 渐变结束的颜色
    • android:centerColor 渐变中间的颜色
    • android:angle 渐变的角度,线性渐变时才有效,必须是45的倍数,0表示从左到右,90表示从下到上
    • android:centerX 渐变中心的相对X坐标,放射渐变时才有效,在0.0到1.0之间,默认为0.5,表示在正中间
    • android:centerY 渐变中心的相对X坐标,放射渐变时才有效,在0.0到1.0之间,默认为0.5,表示在正中间
    • android:gradientRadius 渐变的半径,只有渐变类型为radial时才使用
    • android:useLevel 如果为true,则可在LevelListDrawable中使用
  • corners: 设置圆角,只适用于rectangle类型,可分别设置四个角不同半径的圆角,当设置的圆角半径很大时,比如200dp,就可变成弧形边了

    • android:radius 圆角半径,会被下面每个特定的圆角属性重写
    • android:topLeftRadius 左上角的半径
    • android:topRightRadius 右上角的半径
    • android:bottomLeftRadius 左下角的半径
    • android:bottomRightRadius 右下角的半径
  • stroke: 设置描边,可描成实线或虚线。

    • android:color 描边的颜色
    • android:width 描边的宽度
    • android:dashWidth 设置虚线时的横线长度
    • android:dashGap 设置虚线时的横线之间的距离

----------------------------------↑↑shape的属性标签↑↑-----------------------------------------

上一篇:【算法学习笔记】概率与期望DP


下一篇:BZOJ 3566 [SHOI2014]概率充电器 ——期望DP