{"id":728,"date":"2016-01-23T13:23:49","date_gmt":"2016-01-23T05:23:49","guid":{"rendered":"https:\/\/www.ray650128.com\/wordpress\/?p=611"},"modified":"2016-01-23T13:23:49","modified_gmt":"2016-01-23T05:23:49","slug":"android%e8%bd%89%e8%bc%89-android%e6%a8%a3%e5%bc%8f%e7%9a%84%e9%96%8b%e7%99%bcstyle%e7%af%87","status":"publish","type":"post","link":"https:\/\/blog.ray650128.com\/?p=728","title":{"rendered":"[Android]\u8f49\u8f09-Android\u6a23\u5f0f\u7684\u958b\u767c:Style\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\u93c8\u63a5\uff1a<a href=\"http:\/\/keeganlee.me\/post\/android\/20151031\" target=\"_blank\" rel=\"noopener\"><strong>http:\/\/keeganlee.me\/post\/android\/20151031<\/strong><\/a><\/span><\/p>\n<hr \/>\n<p class=\"md_block md_has_block_below md_has_block_below_ol\"><span class=\"md_line\">\u524d\u9762\u92ea\u588a\u4e86\u90a3\u9ebc\u591a\uff0c\u7d42\u65bc\u8981\u8b1b\u5230\u672c\u7cfb\u5217\u7684\u7d42\u7bc7\uff0c\u6574\u5408\u6240\u6709\u8cc7\u6e90\uff0c\u5b9a\u7fa9\u6210\u7d71\u4e00\u7684\u6a23\u5f0f\u3002<\/span> <span class=\"md_line\">\u54ea\u4e9b\u8a72\u5b9a\u7fa9\u6210\u7d71\u4e00\u7684\u6a23\u5f0f\u5462\uff1f\u8209\u5e7e\u500b\u4f8b\u5b50\u5427\uff1a<\/span><\/p>\n<ol>\n<li class=\"md_li\">\u6bcf\u500b\u9801\u9762\u6a19\u984c\u6b04\u7684\u6a19\u984c\u57fa\u672c\u6703\u6709\u4e00\u6a23\u7684\u5b57\u9ad4\u5927\u5c0f\u3001\u984f\u8272\u3001\u5c0d\u9f4a\u65b9\u5f0f\u3001\u5167\u9593\u8ddd\u3001\u5916\u9593\u8ddd\u7b49\uff0c\u9019\u5c31\u53ef\u4ee5\u5b9a\u7fa9\u6210\u6a23\u5f0f\uff1b<\/li>\n<li class=\"md_li\">\u5f88\u591a\u6309\u9215\u4e5f\u90fd\u4f7f\u7528\u4e00\u81f4\u7684\u80cc\u666f\u3001\u5167\u9593\u8ddd\u3001\u6587\u5b57\u984f\u8272\u3001\u6587\u5b57\u5927\u5c0f\u3001\u6587\u5b57\u7684\u5c0d\u9f4a\u65b9\u5f0f\u7b49\uff0c\u9019\u4e5f\u53ef\u4ee5\u5b9a\u7fa9\u6210\u6a23\u5f0f\uff1b<\/li>\n<li class=\"md_li\">\u7db2\u8def\u52a0\u8f09\u7684\u9032\u5ea6\u689d\u57fa\u672c\u4e5f\u90fd\u662f\u4e00\u6a23\u7684\uff0c\u540c\u6a23\u53ef\u4ee5\u5b9a\u7fa9\u6210\u6a23\u5f0f\uff1b<\/li>\n<li class=\"md_li\">\u4e0d\u559c\u6b61\u7cfb\u7d71\u7684\u5f48\u51fa\u6846\u6a23\u5f0f\uff0c\u90a3\u4e5f\u53ef\u4ee5\u81ea\u5b9a\u7fa9\u6a23\u5f0f\u3002<\/li>\n<\/ol>\n<h1 id=\"toc_0\">\u6a23\u5f0f\u7684\u5b9a\u7fa9<\/h1>\n<p class=\"md_block\"><span class=\"md_line\">Android\u7684\u6a23\u5f0f\u4e00\u822c\u5b9a\u7fa9\u5728<strong>res\/values\/styles.xml<\/strong>\u6587\u4ef6\u4e2d\uff0c\u5176\u4e2d\u6709\u4e00\u500b\u6839\u5143\u7d20&lt;resource&gt;<strong>\uff0c\u800c\u5177\u9ad4\u7684\u6bcf\u7a2e\u6a23\u5f0f\u5b9a\u7fa9\u5247\u662f\u901a\u904e<\/strong>&lt;resource&gt;<strong>\u4e0b\u7684\u5b50\u6a19\u7c64<\/strong>&lt;style&gt;<strong>\u4f86\u5b8c\u6210\uff0c<\/strong>&lt;style&gt;<strong>\u901a\u904e\u6dfb\u52a0\u591a\u500b<\/strong>&lt;item&gt;<strong>\u4f86\u8a2d\u7f6e\u6a23\u5f0f\u4e0d\u540c\u7684\u5c6c\u6027\u3002<\/strong><\/span><strong> <span class=\"md_line\">\u53e6\u5916\uff0c\u6a23\u5f0f\u662f\u53ef\u4ee5\u7e7c\u627f\u7684\uff0c\u53ef\u901a\u904e<\/span><\/strong>&lt;style&gt;<strong>\u6a19\u7c64\u7684<\/strong>parent**\u5c6c\u6027\u8072\u660e\u8981\u7e7c\u627f\u7684\u6a23\u5f0f\uff0c\u4e5f\u53ef\u901a\u904e\u9ede\u524d\u7db4 (.) \u7e7c\u627f\uff0c\u9ede\u524d\u9762\u70ba\u7236\u6a23\u5f0f\u540d\u7a31\uff0c\u5f8c\u9762\u70ba\u5b50\u6a23\u5f0f\u540d\u7a31\u3002\u9ede\u524d\u7db4\u65b9\u5f0f\u53ea\u9069\u7528\u65bc\u81ea\u5b9a\u7fa9\u7684\u6a23\u5f0f\uff0c\u82e5\u8981\u7e7c\u627fAndroid\u5167\u7f6e\u7684\u6a23\u5f0f\uff0c\u5247\u53ea\u80fd\u901a\u904e<strong>parent<\/strong>\u5c6c\u6027\u8072\u660e\u3002<br \/>\n<span class=\"md_line\">\u7528\u500b\u5be6\u4f8b\u8aaa\u660e\u5177\u9ad4\u7684\u7528\u6cd5\u5427\uff0c\u4ee5\u4e0b\u7a0b\u5f0f\u78bc\u70baAndroid 5.0\u7cfb\u7d71\u9ed8\u8a8d\u7684\u6309\u9215\u6a23\u5f0f\uff1a<\/span><\/p>\n<div class=\"codehilite code_lang_xml  highlight\">\n<pre><span class=\"nt\">&lt;style<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"Widget.Material.Button\"<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"background\"<\/span><span class=\"nt\">&gt;<\/span>@drawable\/btn_default_material<span class=\"nt\">&lt;\/item&gt;<\/span>\n    <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"textAppearance\"<\/span><span class=\"nt\">&gt;<\/span>?attr\/textAppearanceButton<span class=\"nt\">&lt;\/item&gt;<\/span>\n    <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"minHeight\"<\/span><span class=\"nt\">&gt;<\/span>48dip<span class=\"nt\">&lt;\/item&gt;<\/span>\n    <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"minWidth\"<\/span><span class=\"nt\">&gt;<\/span>88dip<span class=\"nt\">&lt;\/item&gt;<\/span>\n    <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"stateListAnimator\"<\/span><span class=\"nt\">&gt;<\/span>@anim\/button_state_list_anim_material<span class=\"nt\">&lt;\/item&gt;<\/span>\n    <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"focusable\"<\/span><span class=\"nt\">&gt;<\/span>true<span class=\"nt\">&lt;\/item&gt;<\/span>\n    <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"clickable\"<\/span><span class=\"nt\">&gt;<\/span>true<span class=\"nt\">&lt;\/item&gt;<\/span>\n    <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"gravity\"<\/span><span class=\"nt\">&gt;<\/span>center_vertical|center_horizontal<span class=\"nt\">&lt;\/item&gt;<\/span>\n<span class=\"nt\">&lt;\/style&gt;<\/span>\n<\/pre>\n<\/div>\n<p class=\"md_block\"><span class=\"md_line\">\u5176\u4e2d\uff0c<strong>stateListAnimator<\/strong>\u6307\u5b9a\u72c0\u614b\u6539\u8b8a\u6642\u7684\u52d5\u756b\uff0c<strong>button_state_list_anim_material<\/strong>\u7684\u7a0b\u5f0f\u78bc\u5982\u4e0b\uff1a<\/span><\/p>\n<div class=\"codehilite code_lang_xml  highlight\">\n<pre><span class=\"c\">&lt;!-- res\/anim\/button_state_list_anim_material.xml --&gt;<\/span>\n<span class=\"cp\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;<\/span>\n<span class=\"nt\">&lt;selector<\/span> <span class=\"na\">xmlns:android=<\/span><span class=\"s\">\"http:\/\/schemas.android.com\/apk\/res\/android\"<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"nt\">&lt;item<\/span> <span class=\"na\">android:state_pressed=<\/span><span class=\"s\">\"true\"<\/span> <span class=\"na\">android:state_enabled=<\/span><span class=\"s\">\"true\"<\/span><span class=\"nt\">&gt;<\/span>\n        <span class=\"nt\">&lt;set&gt;<\/span>\n            <span class=\"nt\">&lt;objectAnimator<\/span> \n                <span class=\"na\">android:propertyName=<\/span><span class=\"s\">\"translationZ\"<\/span>\n                <span class=\"na\">android:duration=<\/span><span class=\"s\">\"@integer\/button_pressed_animation_duration\"<\/span>\n                <span class=\"na\">android:valueTo=<\/span><span class=\"s\">\"@dimen\/button_pressed_z_material\"<\/span>\n                <span class=\"na\">android:valueType=<\/span><span class=\"s\">\"floatType\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n            <span class=\"nt\">&lt;objectAnimator<\/span> \n                <span class=\"na\">android:propertyName=<\/span><span class=\"s\">\"elevation\"<\/span>\n                <span class=\"na\">android:duration=<\/span><span class=\"s\">\"0\"<\/span>\n                <span class=\"na\">android:valueTo=<\/span><span class=\"s\">\"@dimen\/button_elevation_material\"<\/span>\n                <span class=\"na\">android:valueType=<\/span><span class=\"s\">\"floatType\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n        <span class=\"nt\">&lt;\/set&gt;<\/span>\n    <span class=\"nt\">&lt;\/item&gt;<\/span>\n    <span class=\"c\">&lt;!-- base state --&gt;<\/span>\n    <span class=\"nt\">&lt;item<\/span> <span class=\"na\">android:state_enabled=<\/span><span class=\"s\">\"true\"<\/span><span class=\"nt\">&gt;<\/span>\n        <span class=\"nt\">&lt;set&gt;<\/span>\n            <span class=\"nt\">&lt;objectAnimator<\/span> \n                <span class=\"na\">android:propertyName=<\/span><span class=\"s\">\"translationZ\"<\/span>\n                <span class=\"na\">android:duration=<\/span><span class=\"s\">\"@integer\/button_pressed_animation_duration\"<\/span>\n                <span class=\"na\">android:valueTo=<\/span><span class=\"s\">\"0\"<\/span>\n                <span class=\"na\">android:startDelay=<\/span><span class=\"s\">\"@integer\/button_pressed_animation_delay\"<\/span>\n                <span class=\"na\">android:valueType=<\/span><span class=\"s\">\"floatType\"<\/span><span class=\"nt\">\/&gt;<\/span>\n            <span class=\"nt\">&lt;objectAnimator<\/span> \n                <span class=\"na\">android:propertyName=<\/span><span class=\"s\">\"elevation\"<\/span>\n                <span class=\"na\">android:duration=<\/span><span class=\"s\">\"0\"<\/span>\n                <span class=\"na\">android:valueTo=<\/span><span class=\"s\">\"@dimen\/button_elevation_material\"<\/span>\n                <span class=\"na\">android:valueType=<\/span><span class=\"s\">\"floatType\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n        <span class=\"nt\">&lt;\/set&gt;<\/span>\n    <span class=\"nt\">&lt;\/item&gt;<\/span>\n    <span class=\"nt\">&lt;item&gt;<\/span>\n        <span class=\"nt\">&lt;set&gt;<\/span>\n            <span class=\"nt\">&lt;objectAnimator<\/span> \n                <span class=\"na\">android:propertyName=<\/span><span class=\"s\">\"translationZ\"<\/span>\n                <span class=\"na\">android:duration=<\/span><span class=\"s\">\"0\"<\/span>\n                <span class=\"na\">android:valueTo=<\/span><span class=\"s\">\"0\"<\/span>\n                <span class=\"na\">android:valueType=<\/span><span class=\"s\">\"floatType\"<\/span><span class=\"nt\">\/&gt;<\/span>\n            <span class=\"nt\">&lt;objectAnimator<\/span> \n                <span class=\"na\">android:propertyName=<\/span><span class=\"s\">\"elevation\"<\/span>\n                <span class=\"na\">android:duration=<\/span><span class=\"s\">\"0\"<\/span>\n                <span class=\"na\">android:valueTo=<\/span><span class=\"s\">\"0\"<\/span>\n                <span class=\"na\">android:valueType=<\/span><span class=\"s\">\"floatType\"<\/span><span class=\"nt\">\/&gt;<\/span>\n        <span class=\"nt\">&lt;\/set&gt;<\/span>\n    <span class=\"nt\">&lt;\/item&gt;<\/span>\n<span class=\"nt\">&lt;\/selector&gt;<\/span>\n<\/pre>\n<\/div>\n<p class=\"md_block\"><span class=\"md_line\">\u53ef\u4ee5\u770b\u5230\uff0c\u6bcf\u7a2e\u72c0\u614b\u7684\u52d5\u756b\u70ba\u5c6c\u6027\u52d5\u756b\u96c6\uff0c\u5c6c\u6027\u52d5\u756b\u7684\u7528\u6cd5\u8acb\u53c3\u8003<a class=\"md_compiled\" href=\"http:\/\/keeganlee.me\/post\/android\/20151026\">Property Animation\u7bc7<\/a>\u3002<\/span> <span class=\"md_line\">\u73fe\u5728\u6211\u60f3\u7e7c\u627f<strong>Widget.Material.Button<\/strong>\u6a23\u5f0f\uff0c\u6539\u8b8a\u80cc\u666f\u548c\u6587\u5b57\u984f\u8272\uff0c\u90a3\u9ebc\uff0c\u7a0b\u5f0f\u78bc\u5982\u4e0b\uff1a<\/span><\/p>\n<div class=\"codehilite code_lang_xml  highlight\">\n<pre><span class=\"c\">&lt;!-- res\/values\/styles.xml --&gt;<\/span>\n<span class=\"nt\">&lt;resources&gt;<\/span>\n    <span class=\"nt\">&lt;style<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"ButtonNormal\"<\/span> <span class=\"na\">parent=<\/span><span class=\"s\">\"@android:style\/Widget.Material.Button\"<\/span> <span class=\"nt\">&gt;<\/span>\n        <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"android:background\"<\/span><span class=\"nt\">&gt;<\/span>@drawable\/bg_btn_selector<span class=\"nt\">&lt;\/item&gt;<\/span>\n        <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"android:textColor\"<\/span><span class=\"nt\">&gt;<\/span>@color\/text_btn_selector<span class=\"nt\">&lt;\/item&gt;<\/span>\n    <span class=\"nt\">&lt;\/style&gt;<\/span>\n<span class=\"nt\">&lt;\/resources&gt;<\/span>\n<\/pre>\n<\/div>\n<p class=\"md_block\"><span class=\"md_line\">\u5176\u4e2d\uff0c<strong>@drawable\/bg_btn_selector<\/strong>\u548c@color\/text_btn_selector**\u7684\u5be6\u73fe\u8acb\u53c3\u7167<a class=\"md_compiled\" href=\"http:\/\/keeganlee.me\/post\/android\/20150905\">selector\u7bc7<\/a>\u3002<\/span> <span class=\"md_line\">\u6709\u4e9b\u6309\u9215\uff0c\u6211\u53ea\u60f3\u6539\u8b8a\u6587\u5b57\u984f\u8272\uff0c\u4f46\u80cc\u666f\u60f3\u8b93\u5b83\u900f\u660e\uff0c\u9019\u6642\u5c31\u53ef\u4ee5\u7528\u9ede\u524d\u7db4\u7684\u65b9\u5f0f\u7e7c\u627f\u4ee5\u4e0a\u7684\u6a23\u5f0f\uff0c\u7a0b\u5f0f\u78bc\u5982\u4e0b\uff1a<\/span><\/p>\n<div class=\"codehilite code_lang_xml  highlight\">\n<pre><span class=\"c\">&lt;!-- res\/values\/styles.xml --&gt;<\/span>\n<span class=\"nt\">&lt;resources&gt;<\/span>\n    <span class=\"nt\">&lt;style<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"ButtonNormal\"<\/span> <span class=\"na\">parent=<\/span><span class=\"s\">\"@android:style\/Widget.Material.Button\"<\/span><span class=\"nt\">&gt;<\/span>\n        <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"android:background\"<\/span><span class=\"nt\">&gt;<\/span>@drawable\/bg_btn_selector<span class=\"nt\">&lt;\/item&gt;<\/span>\n        <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"android:textColor\"<\/span><span class=\"nt\">&gt;<\/span>@color\/text_btn_selector<span class=\"nt\">&lt;\/item&gt;<\/span>\n    <span class=\"nt\">&lt;\/style&gt;<\/span>\n    \n    <span class=\"nt\">&lt;style<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"ButtonNormal.Transparent\"<\/span><span class=\"nt\">&gt;<\/span>\n        <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"android:background\"<\/span><span class=\"nt\">&gt;<\/span>@drawable\/bg_btn_transparent<span class=\"nt\">&lt;\/item&gt;<\/span>\n        <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"android:textColor\"<\/span><span class=\"nt\">&gt;<\/span>@color\/text_btn_selector<span class=\"nt\">&lt;\/item&gt;<\/span>\n    <span class=\"nt\">&lt;\/style&gt;<\/span>\n<span class=\"nt\">&lt;\/resources&gt;<\/span>\n<\/pre>\n<\/div>\n<p class=\"md_block\"><span class=\"md_line\">\u5f15\u7528\u7684\u6642\u5019\u53ea\u8981\u5728\u76f8\u61c9\u7684<strong>Button<\/strong>\u88e1\u6dfb\u52a0<strong>style<\/strong>\u5c31\u53ef\u4ee5\u4e86\uff0c\u7a0b\u5f0f\u78bc\u5982\u4e0b\uff1a<\/span><\/p>\n<div class=\"codehilite code_lang_xml  highlight\">\n<pre><span class=\"nt\">&lt;Button<\/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:onClick=<\/span><span class=\"s\">\"onAction\"<\/span>\n    <span class=\"na\">android:text=<\/span><span class=\"s\">\"@string\/btn_action\"<\/span>\n    <span class=\"na\">style=<\/span><span class=\"s\">\"@style\/ButtonNormal.Transparent\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n<\/pre>\n<\/div>\n<p class=\"md_block\"><span class=\"md_line\">\u6709\u6642\u5019\uff0c\u5b9a\u7fa9\u7684\u6a23\u5f0f\u592a\u591a\uff0c\u5982\u679c\u90fd\u653e\u5728<strong>styles.xml<\/strong>\u6587\u4ef6\u88e1\uff0c\u90a3\u9019\u6587\u4ef6\u4e5f\u592a\u81c3\u816b\u4e86\u3002\u56e0\u6b64\uff0c\u53ef\u4ee5\u5c07\u6a23\u5f0f\u5206\u985e\u62c6\u5206\u6210\u591a\u500b\u6587\u4ef6\u3002Android\u7cfb\u7d71\u672c\u8eab\u4e5f\u62c6\u5206\u70ba\u591a\u500b\u6587\u4ef6\u5b58\u653e\u7684\uff0c\u5982\u4e0b\u5217\u8868\u5168\u90fd\u662f\u6a23\u5f0f\u6587\u4ef6\uff1a<\/span><\/p>\n<pre><code>styles.xml\nstyles_device_defaults.xml\nstyles_holo.xml\nstyles_leanback.xml\nstyles_material.xml\nstyles_micro.xml\nthemes.xml\nthemes_device_defaults.xml\nthemes_holo.xml\nthemes_leanback.xml\nthemes_material.xml\nthemes_micro.xml<\/code><\/pre>\n<p class=\"md_block\"><span class=\"md_line\">\u5176\u4e2d\uff0c\u4e3b\u8981\u5206\u70ba\u5169\u5927\u985e\uff0cstyles\u5b9a\u7fa9\u4e86\u7c21\u55ae\u7684\u6a23\u5f0f\uff0c\u800cthemes\u5247\u5b9a\u7fa9\u4e86\u4e3b\u984c\u3002<\/span><\/p>\n<h1 id=\"toc_1\">\u4e3b\u984c<\/h1>\n<p class=\"md_block\"><span class=\"md_line\">\u4ee5\u4e0a\u7684\u7c21\u55ae\u4f8b\u5b50\u53ea\u7528\u65bc\u55ae\u500b<strong>View<\/strong>\uff0c\u9019\u662f\u6a23\u5f0f\u6700\u7c21\u55ae\u7684\u7528\u6cd5\u3002\u4f46\u6a23\u5f0f\u7684\u7528\u6cd5\u4e0d\u53ea\u662f\u7528\u65bc\u55ae\u500b<strong>View<\/strong>\uff0c\u4e5f\u80fd\u7528\u65bc<strong>Activity<\/strong>\u6216\u6574\u500b<strong>Application<\/strong>\uff0c\u9019\u6642\u5019\u9700\u8981\u5728\u76f8\u61c9\u7684&lt;activity&gt;<strong>\u6a19\u7c64\u6216<\/strong>&lt;application&gt;\u6a19\u7c64\u88e1\u8a2d\u7f6e<strong>android:theme<\/strong>\u5c6c\u6027\uff0c\u5f15\u7528\u7684\u5176\u5be6\u4e5f\u662f<strong>style<\/strong>\uff0c\u4f46\u4e00\u822c\u7a31\u70ba\u4e3b\u984c\u3002<\/span><\/p>\n<p class=\"md_block md_has_block_below md_has_block_below_ul\"><span class=\"md_line\">Android\u7cfb\u7d71\u63d0\u4f9b\u4e86\u591a\u5957\u4e3b\u984c\uff0c\u67e5\u770bAndroid\u7684<a class=\"md_compiled\" href=\"https:\/\/android.googlesource.com\/platform\/frameworks\/base\/+\/refs\/heads\/master\/core\/res\/res\/values\/themes.xml\">frameworks\/base\/core\/res\/res\/values<\/a>\u76ee\u9304\uff0c\u5c31\u6703\u770b\u5230\u6709\u4ee5\u4e0b\u5e7e\u500b\u6587\u4ef6(\u76ee\u524d\u70ba\u6b62)\uff1a<\/span><\/p>\n<ul>\n<li class=\"md_li\"><strong>themes.xml<\/strong>\uff1a\u4f4e\u7248\u672c\u7684\u4e3b\u984c\uff0c\u76ee\u6a19API level\u4e00\u822c\u70ba10\u6216\u4ee5\u4e0b<\/li>\n<li class=\"md_li\"><strong>themes_holo.xml<\/strong>\uff1a\u5f9eAPI level 11\u6dfb\u52a0\u7684\u4e3b\u984c<\/li>\n<li class=\"md_li\"><strong>themes_device_defaults.xml<\/strong>\uff1a\u5f9eAPI level 14\u6dfb\u52a0\u7684\u4e3b\u984c<\/li>\n<li class=\"md_li\"><strong>themes_material.xml<\/strong>\uff1a\u5f9eAPI level 21\u6dfb\u52a0\u7684\u4e3b\u984c<\/li>\n<li class=\"md_li\"><strong>themes_micro.xml<\/strong>\uff1a\u61c9\u8a72\u662f\u7528\u65bcAndroid Wear\u7684\u4e3b\u984c<\/li>\n<li class=\"md_li\"><strong>themes_leanback.xml<\/strong>\uff1a \u9084\u4e0d\u6e05\u695a\u4ec0\u9ebc\u7528<\/li>\n<\/ul>\n<p class=\"md_block\"><span class=\"md_line\">\u4e0d\u904e\u5728\u5be6\u969b\u61c9\u7528\u4e2d\uff0c\u56e0\u70ba\u5927\u90e8\u5206\u90fd\u63a1\u7528\u517c\u5bb9\u5305\u7684\uff0c\u4e00\u822c\u90fd\u6703\u63a1\u7528\u517c\u5bb9\u5305\u63d0\u4f9b\u7684\u4e00\u5957\u4e3b\u984c\uff1a<strong>Theme.AppCompat<\/strong>\u3002<strong>AppCompat<\/strong>\u4e3b\u984c\u9ed8\u8a8d\u6703\u6839\u64da\u4e0d\u540c\u7248\u672c\u7684\u7cfb\u7d71\u81ea\u52d5\u5339\u914d\u76f8\u61c9\u7684\u4e3b\u984c\uff0c\u6bd4\u5982\u5728Android 5.0\u7cfb\u7d71\uff0c\u5b83\u6703\u7e7c\u627fMaterial\u4e3b\u984c\u3002\u4e0d\u904e\u9019\u4e5f\u6703\u5c0e\u81f4\u4e00\u500b\u554f\u984c\uff0c\u4e0d\u540c\u7248\u672c\u7684\u7cfb\u7d71\u4f7f\u7528\u4e0d\u540c\u4e3b\u984c\uff0c\u5c31\u6703\u51fa\u73fe\u4e0d\u540c\u7684\u9ad4\u9a57\u3002\u56e0\u6b64\uff0c\u70ba\u4e86\u7d71\u4e00\u7528\u6236\u9ad4\u9a57\uff0c\u6700\u597d\u9084\u662f\u81ea\u5b9a\u7fa9\u4e3b\u984c\u3002<\/span><\/p>\n<p class=\"md_block\"><span class=\"md_line\">\u81ea\u5b9a\u7fa9\u4e3b\u984c\u4e5f\u5f88\u7c21\u55ae\uff0c\u53ea\u8981\u7e7c\u627f\u67d0\u4e00\u7236\u4e3b\u984c\uff0c\u7136\u5f8c\u5728&lt;activity&gt;<strong>\u6a19\u7c64\u6216<\/strong>&lt;application&gt;\u4e2d\u5f15\u7528\u5c31\u53ef\u4ee5\u4e86\u3002<\/span> <span class=\"md_line\">\u4e3b\u984c\u7684\u5b9a\u7fa9\u793a\u4f8b\u5982\u4e0b\uff1a<\/span><\/p>\n<div class=\"codehilite code_lang_xml  highlight\">\n<pre><span class=\"nt\">&lt;resources&gt;<\/span> \n    <span class=\"nt\">&lt;style<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"AppTheme\"<\/span> <span class=\"na\">parent=<\/span><span class=\"s\">\"Theme.AppCompat\"<\/span><span class=\"nt\">&gt;<\/span>\n        <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"windowActionBar\"<\/span><span class=\"nt\">&gt;<\/span>false<span class=\"nt\">&lt;\/item&gt;<\/span>\n        <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"windowNoTitle\"<\/span><span class=\"nt\">&gt;<\/span>true<span class=\"nt\">&lt;\/item&gt;<\/span>\n        <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"windowAnimationStyle\"<\/span><span class=\"nt\">&gt;<\/span>@style\/WindowAnimation<span class=\"nt\">&lt;\/item&gt;<\/span>\n    <span class=\"nt\">&lt;\/style&gt;<\/span>\n    \n    <span class=\"c\">&lt;!-- Standard animations for a full-screen window or activity. --&gt;<\/span>\n    <span class=\"nt\">&lt;style<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"WindowAnimation\"<\/span> <span class=\"na\">parent=<\/span><span class=\"s\">\"@android:style\/Animation.Activity\"<\/span><span class=\"nt\">&gt;<\/span>\n        <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"activityOpenEnterAnimation\"<\/span><span class=\"nt\">&gt;<\/span>@anim\/activity_open_enter<span class=\"nt\">&lt;\/item&gt;<\/span>\n        <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"activityOpenExitAnimation\"<\/span><span class=\"nt\">&gt;<\/span>@anim\/activity_open_exit<span class=\"nt\">&lt;\/item&gt;<\/span>\n        <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"activityCloseEnterAnimation\"<\/span><span class=\"nt\">&gt;<\/span>@anim\/activity_close_enter<span class=\"nt\">&lt;\/item&gt;<\/span>\n        <span class=\"nt\">&lt;item<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"activityCloseExitAnimation\"<\/span><span class=\"nt\">&gt;<\/span>@anim\/activity_close_exit<span class=\"nt\">&lt;\/item&gt;<\/span>\n    <span class=\"nt\">&lt;\/style&gt;<\/span>\n<span class=\"nt\">&lt;\/resources&gt;<\/span>\n<\/pre>\n<\/div>\n<p class=\"md_block\"><span class=\"md_line\">\u5176\u4e2d\uff0c<strong>WindowAnimation<\/strong>\u91cd\u65b0\u6307\u5b9a\u4e86<strong>Activity<\/strong>\u7684\u8f49\u5834\u52d5\u756b\uff0c\u4ee5\u4e0b\u70ba<strong>activity_close_exit<\/strong>\u7684\u793a\u4f8b\u7a0b\u5f0f\u78bc\uff1a<\/span><\/p>\n<div class=\"codehilite code_lang_xml  highlight\">\n<pre><span class=\"c\">&lt;!-- res\/anim\/activity_close_exit.xml --&gt;<\/span>\n<span class=\"cp\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;<\/span>\n<span class=\"nt\">&lt;set<\/span> <span class=\"na\">xmlns:android=<\/span><span class=\"s\">\"http:\/\/schemas.android.com\/apk\/res\/android\"<\/span>\n    <span class=\"na\">android:shareInterpolator=<\/span><span class=\"s\">\"false\"<\/span>\n    <span class=\"na\">android:zAdjustment=<\/span><span class=\"s\">\"top\"<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"nt\">&lt;alpha<\/span> \n        <span class=\"na\">android:fromAlpha=<\/span><span class=\"s\">\"0.0\"<\/span> \n        <span class=\"na\">android:toAlpha=<\/span><span class=\"s\">\"1.0\"<\/span>\n        <span class=\"na\">android:interpolator=<\/span><span class=\"s\">\"@interpolator\/decelerate_quart\"<\/span>\n        <span class=\"na\">android:fillEnabled=<\/span><span class=\"s\">\"true\"<\/span>\n        <span class=\"na\">android:fillBefore=<\/span><span class=\"s\">\"false\"<\/span> \n        <span class=\"na\">android:fillAfter=<\/span><span class=\"s\">\"true\"<\/span>\n        <span class=\"na\">android:duration=<\/span><span class=\"s\">\"200\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n    <span class=\"nt\">&lt;translate<\/span> \n        <span class=\"na\">android:fromYDelta=<\/span><span class=\"s\">\"8%\"<\/span> \n        <span class=\"na\">android:toYDelta=<\/span><span class=\"s\">\"0\"<\/span>\n        <span class=\"na\">android:fillEnabled=<\/span><span class=\"s\">\"true\"<\/span> \n        <span class=\"na\">android:fillBefore=<\/span><span class=\"s\">\"true\"<\/span> \n        <span class=\"na\">android:fillAfter=<\/span><span class=\"s\">\"true\"<\/span>\n        <span class=\"na\">android:interpolator=<\/span><span class=\"s\">\"@interpolator\/decelerate_quint\"<\/span>\n        <span class=\"na\">android:duration=<\/span><span class=\"s\">\"350\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n<span class=\"nt\">&lt;\/set&gt;<\/span>\n<\/pre>\n<\/div>\n<p class=\"md_block\"><span class=\"md_line\">\u9019\u662f\u6bd4\u8f03\u7c21\u55ae\u7684\u8996\u5716\u52d5\u756b\uff0c\u8996\u5716\u52d5\u756b\u5177\u9ad4\u7528\u6cd5\u53ef\u53c3\u8003<a class=\"md_compiled\" href=\"http:\/\/keeganlee.me\/post\/android\/20151003\">View Animation\u7bc7<\/a>\u3002<\/span> <span class=\"md_line\">\u63a5\u8457\uff0c\u82e5\u8981\u4f7f\u7528\u5230\u6574\u500bApplication\uff0c\u5247\u5728<strong>AndroidManifest.xml<\/strong>\u7684&lt;application&gt;<strong>\u6a19\u7c64\u8a2d\u7f6e<\/strong>android:theme**\u5c6c\u6027\uff0c\u793a\u4f8b\u7a0b\u5f0f\u78bc\u5982\u4e0b\uff1a<\/span><\/p>\n<div class=\"codehilite code_lang_xml  highlight\">\n<pre><span class=\"nt\">&lt;application<\/span>\n    <span class=\"na\">android:allowBackup=<\/span><span class=\"s\">\"true\"<\/span>\n    <span class=\"na\">android:icon=<\/span><span class=\"s\">\"@mipmap\/ic_launcher\"<\/span>\n    <span class=\"na\">android:label=<\/span><span class=\"s\">\"@string\/app_name\"<\/span>\n    <span class=\"na\">android:theme=<\/span><span class=\"s\">\"@style\/AppTheme\"<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"c\">&lt;!-- activity here --&gt;<\/span>\n<span class=\"nt\">&lt;\/application&gt;<\/span>\n<\/pre>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u8f49\u8f09\u81eaKeegan\u5c0f\u92fc \u539f\u6587\u93c8\u63a5\uff1ahttp:\/\/keeganlee.me\/post\/android\/20151 &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-728","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\/728","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=728"}],"version-history":[{"count":0,"href":"https:\/\/blog.ray650128.com\/index.php?rest_route=\/wp\/v2\/posts\/728\/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=728"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ray650128.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=728"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ray650128.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=728"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}