ʲôÊÇ9Patchͼ?
AndroidϵͳÓÉÓÚϵͳºÍ·Ö±æÂʵĶàÑùÐÔ,½çÃæÊÊÅäÊÇÈÿª·¢ÕßÍ·ÌÛµÄÎÊÌâ,ºÜ¶à¿Ø¼þµÄÇÐͼÎļþÔÚ²»Í¬ÆÁÄ»Éϱ»·Å´óÀÉìºó,±ß½Ç»áÄ£ºýÊ§Õæ,Ê®·Ö³óª. ¶Ô²»Í¬µÄ·Ö±æÂÊÖÆ×÷¶à¸öÇÐͼ,ÓÖÔö´óÁ˰²×°°üµÄ´óС. ÓÚÊÇAndroidרÃÅÖÆ×÷ÁËÒ»ÖÖ.9.PNG¸ñʽÀ´½â¾öÕâ¸öÎÊÌâ. ÕâÖÖ¸ñʽµÄͼƬÄܰ´ÕÕÉ趨À´ÀÉìÌØ¶¨ÇøÓò,¶ø²»ÊÇÕûÌå·Å´ó»òËõС,´Ó¶ø±£Ö¤ÁËͼƬÔÚ¸÷¸ö·Ö±æÂÊµÄÆÁÄ»É϶¼¿ÉÒÔÍêÃÀչʾ,ÕâÖÖͼҲ±»³Æ×÷9Patchͼ.
ÈçºÎ»æÖÆ9Patchͼ?
Ò». ´ò¿ª9Patch»æÍ¼¹¤¾ß
AndroidÆäʵÒѾÔÚsdk°üÖÐÌṩÁË»æÖÆ9PatchͼµÄ¹¤¾ß, ¾ßÌå·¾¶ÈçÏÂ: sdk\tools\draw9patch.bat
ͼ2-1-1 9patch¹¤¾ß·¾¶
Ë«»÷´ò¿ªdraw9patch.batÎļþ, ¿ÉÒÔ½øÈëÈçÏ¿ÉÊÓ»¯½çÃæ:
ͼ2-1-2 9patchÖ÷½çÃæ
¶þ. Ìí¼Ó´ý»æÖƵÄͼƬ
½«ÐèÒª¸ÄÔìµÄÆÕͨpngͼƬÍÏ×§µ½draw9patchµÄ¹¤×÷ÇøÓò, ¿É¿´µ½ÈçÏÂЧ¹û:
ͼ2-2-1 9patch¹¤×÷Çø¼ä
¹¤×÷Çø¼ä´óÌå¿ÉÒÔ·ÖΪ3¸öÇøÓò, Èçͼ±êʾΪ:ºìÉ«ÇøÓò, ÂÌÉ«ÇøÓò, À¶É«ÇøÓò.
ºìÉ«ÇøÓò: Ö÷ÒªµÄ¹¤×÷ÇøÓò,½«À´¶ÔͼƬµÄÐ޸IJÙ×÷¶¼ÔÚ´Ë´¦Íê³É.
ÂÌÉ«ÇøÓò: Ч¹ûÕ¹Ê¾ÇøÓò, ÓÃÓÚչʾÐ޸ĺóͼƬµÄÀÉìЧ¹û.ÎÒÃÇ¿ÉÒÔ¿´µ½ÓÐ3ÖÖÀÉìЧ¹û,´ÓÉÏÖÁÏÂÒÀ´ÎÊÇÊúÖ±ÀÉìЧ¹û,ˮƽÀÉìЧ¹ûºÍÕûÌåÀÉìЧ¹û.
À¶É«ÇøÓò: ÉèÖÃÇøÓò,¿ÉÒÔ¶Ôµ±Ç°½çÃæÕ¹Ê¾Ð§¹û½øÐе÷Õû. ÎÒÃÇ¿ÉÒÔÃ÷ÏԵĿ´µ½ÓÐÁ½¸öÍ϶¯Ìõ, ÉϲàÃûΪZoomµÄÍ϶¯ÌõÊÇÓÃÀ´¶ÔºìÉ«ÇøÓòͼƬ½øÐÐËõ·ÅµÄ, ¶øÏ²àµÄPatch scaleÍ϶¯ÌõÊǶÔÂÌÉ«ÇøÓòµÄͼƬ½øÐÐËõ·ÅµÄ. ͨ¹ýÕâÁ½¸öÍ϶¯ÌõµÄÉèÖÃ,ÎÒÃǾͿÉÒÔ¸ü¼Ó·½±ãµÄ¶Ô¹¤×÷ÇøÓòͼƬ½øÐÐÐÞ¸Ä, Ò²¿ÉÒÔÁ˽âÔÚ¸÷¸ö·½Ïò¾¹ý²»Í¬³Ì¶ÈÀÉìºóµÄչʾЧ¹û.
Èý. ¿ªÊ¼»æÖÆ
Èç¹ûÎÒÃDz»¶ÔͼƬ½øÐÐÈκÎÐÞ¸Ä, ÄÇôͼƬÔÚ¸÷¸ö·½ÏòÀÉìʱ¶¼ÊÇÕûÌåËõ·ÅµÄ. Ëõ·Åͬʱ,ͼƬԲ½ÇÒ²»á¸ú×ÅËõ·Å,µ¼ÖÂ×îÖÕչʾЧ¹ûºÜ²î.
ÕâÊÇÊúÖ±ÀÉìµÄЧ¹û:
ͼ2-3-1 ÊúÖ±ÀÉìЧ¹û
ÕâÊÇˮƽÀÉìЧ¹û:
ͼ2-3-2 ˮƽÀÉìЧ¹û
ΪÁËÈÃÊúÖ±ºÍˮƽÀÉì²»°üÀ¨Ô²½Ç, ÎÒÃÇ¿ÉÒÔÕâÑù¶ÔͼƬ½øÐд¦Àí:
ÎÒÃÇÀ´µ½¹¤×÷ÇøÓò, °´×¡Êó±ê×ó¼ü, ÔÚͼƬ×îÉÏ·½µÄÒ»¸öÏñËØµÄ¸ñ×ÓÖÐ, »æÖÆÒ»ÌõˮƽÏß, ÕâÌõÏߵĿí¶È,¾Í±íʾ¸ÃͼƬˮƽÀÉìµÄÇøÓò. ÈçÏÂͼËùʾ:
ͼ2-3-3 ˮƽÀÉì
ÏÂͼµÄdzºìÉ«ÇøÓò¾ÍÊÇͼƬˮƽÀÉìµÄÇøÓò.
ͼ2-3-4 ˮƽÀÉìÇøÓò
ͬÀí, ÎÒÃÇÀ´µ½Í¼Æ¬×îÓÒ²àµÄÒ»¸öÏñËØµÄ±ßÏßÖÐ,°´×¡Êó±ê×ó¼ü»æÖÆÒ»ÌõÊúÖ±Ïß, ÕâÌõÏߵij¤¶È,¾ÍÊÇͼƬÊúÖ±ÀÉìµÄÇøÓò.
ͼ2-3-5 ÊúÖ±ÀÉì
ÏÂͼµÄdzºìÉ«ÇøÓò¾ÍÊÇͼƬ½«À´ÊúÖ±ÀÉìµÄÇøÓò.
ͼ2-3-6 ÊúÖ±ÀÉìÇøÓò
µ±ÎÒÃÇͬʱͨ¹ýÉϱßÏߺÍÓÒ±ßÏ߹涨ÁËˮƽºÍÊúÖ±µÄÀÉìÇøÓòºó, ͼƬ¾Í¿ÉÒÔ°´ÕÕÎÒÃǵÄÉ趨×ÔÓÉÀÉìÁË. ÏÂͼµÄºìÉ«ÇøÓò¾ÍÊÇÀÉìÇøÓò, ¿ÉÒÔ¿´³ö,ÀÉìÇøÓòûÓаüÀ¨4¸öÔ²½Ç, ´Ó¶ø±£Ö¤ÁËÔ²½Ç²»±»ËæÒâÀÉì.
ͼ2-3-7 ÕûÌåÀÉìÇøÓò
×¢Òâ: Èç¹ûÔÚ»æÖƺÚÏߵĹý³ÌÖÐ, ÓÉÓÚ²Ù×÷ʧÎó, Ïë²Á³ý֮ǰ»æÖƵÄÄÚÈÝ, ¿ÉÒÔ°´×¡Êó±êÓÒ¼ü½øÐвÁ³ý, Ò²¿ÉÒÔ°´×¡Shift¼üµÄͬʱ, ʹÓÃÊó±ê×ó¼ü½øÐвÁ³ý.
×îºó,ÎÒÃÇ¿´Ò»ÏÂÐ޸ĺóµÄͼƬÀÉìЧ¹û:
ÊúÖ±ÀÉìЧ¹û:
ͼ2-3-9 Ð޸ĺóµÄÊúÖ±ÀÉìЧ¹û
ˮƽÀÉìЧ¹û:
ͼ2-3-10 Ð޸ĺóµÄˮƽÀÉìЧ¹û
ÕûÌåÀÉìЧ¹û:
ͼ2-3-11 Ð޸ĺóµÄÕûÌåÀÉìЧ¹û
ËÄ. ÖªÊ¶ÍØÕ¹
ÎÒÃǸոÕÁÄÁËÉϱßÏߺÍ×ó±ßÏßÀ´¿ØÖÆË®Æ½ºÍÊúÖ±ÀÉìЧ¹ûµÄÎÊÌâ, ÄÇô, ϱßÏߺÍÓÒ±ßÏßÓÖÊÇÀ´¿ØÖÆÊ²Ã´µÄÄØ? ʵ¼ÊÉÏϱßÏߺÍÓÒ±ßÏß²¢²»ÊÇ¿ØÖÆÀÉì, ¶øÊÇ¿ØÖÆÄÚÈݵÄÌî³äÇøÓò.
ʲô½Ð×öÄÚÈÝÌî³äÇøÓòÄØ? ±ÈÈç˵, ÎÒÃǰÑÍ¼Æ¬ÖÆ×÷ºÃÖ®ºó,ÒÔ±³¾°µÄ·½Ê½ÉèÖøøÁËÒ»¸ö°´Å¥, ¶ø°´Å¥Ò»°ã¶¼ÊÇҪչʾÎÄ×ֵİÉ? ÈçÏÂͼËùʾ:
ͼ2-4-1 ¸ø°´Å¥ÉèÖÃÎÄ×Ö
µ«ÊÇ, ÎÄ×Ö¿É´ó¿ÉС, Èç¹ûÎÄ×ÖÌØ±ð´óµÄ»°, ¿ÉÄÜ»á³öÏÖÏÂÃæÕâÖÖÇé¿ö:
ͼ2-4-2 ¸ø°´Å¥ÉèÖýϴóÎÄ×Ö
ºÜÃ÷ÏÔ, ÎÄ×Ö×óÓÒÁ½²àÌ«¿¿½üͼƬ±ßÔµÁË, ¸Ð¾õºÜ²»ÃÀ¹Û, ËùÒÔÎÒÃÇ¿ÉÒÔͨ¹ý9PatchͼÀ´Ìáǰ¹æ¶¨ºÃÎÄ×ÖµÄÌî³äÇøÓò.
ͼ2-4-3 ÉèÖÃÄÚÈÝÌî³äÇøÓò
ÈçÉÏͼËùʾ, ÓÒ±ßÏß±íʾÊúÖ±Ìî³äÇøÓò, ϱßÏß±íʾˮƽÌî³äÇøÓò, ÂÌÏß½»»ãºóµÄ¾ØÐÎÇøÓò¾ÍÊÇ×îÖÕµÄÄÚÈÝÇøÓò.
Îå. ±£´æ9PatchͼƬ
µã»÷¹¤¾ß×óÉϽÇFile, Ñ¡ÔñSave 9-patch, ±£´æÍ¼Æ¬.
ͼ2-5-1 ±£´æÍ¼Æ¬
±£´æÖ®ºó, ÎļþÀ©Õ¹Ãû»á×Ô¶¯±äΪ.9.png. µ½ÕâÀï, ÎÒÃǾÍÒѾ³É¹¦µÄ½«Ò»¸öÆÕͨµÄpngͼƬ¸ÄÔì³ÉÁË¿ÉÒÔËæÒâÀÉì²»±äÐεÄ9patchͼƬÀ².
ÈçºÎʹÓÃ9Patchͼ?
ʹÓÃ9patchͼºÜ¼òµ¥, ºÍÆÕͨpngÍêȫһÑù. ÈçÏÂͼ, н¨Ò»¸öÏîÄ¿, ½«ÎÒÃǸոÕÖÆ×÷ºÃµÄ9Patchͼdemo.9.pngµ¼Èëµ½drawable-hdpiµÄĿ¼ÏÂ.
ͼ3-1 ÏîÄ¿½á¹¹
ÐÞ¸Äactivity_main.xml, Ìí¼Ó¼¸¸öButton, ±³¾°Ê¹ÓÃdemo.9.png, ×ÖÌå´óСÖð²½Ôö´ó.
<LinearLayout 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:orientation="vertical" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/demo"
android:text="ÀÖÓã²¥¿Í" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/demo"
android:text="ÀÖÓã²¥¿Í"
android:textSize="25sp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/demo"
android:text="ÀÖÓã²¥¿Í"
android:textSize="40sp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/demo"
android:text="ÀÖÓã²¥¿Í"
android:textSize="60sp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/demo"
android:text="ÀÖÓã²¥¿Í"
android:textSize="75sp" />
</LinearLayout>
Ö±½ÓÔËÐÐÏîÄ¿, ¿´Ð§¹û:
ͼ3-2 ÏîÄ¿ÔËÐÐЧ¹û
×ܽá
9Patchͼ¸øÎÒÃÇÆÁÄ»ÊÊÅä´øÀ´Á˺ܴóµÄ±ãÀû,ËùÒԷdz£ÊµÓÃ. ÈçºÎ¿ìËÙÕÆÎÕ9PatchͼµÄ»æÖÆÒªÁìÄØ, ÆäʵºÜ¼òµ¥, Ö»ÐèÒª¼ÇסÉÏÏÂ×óÓÒËÄÌõÏß·Ö±ð´ú±íʲô¾Í¿ÉÒÔÁË. ÉϱßÏß¿ØÖÆË®Æ½ÀÉì, ×ó±ßÏß¿ØÖÆÊúÖ±ÀÉì, ϱßÏß¿ØÖÆË®Æ½Ìî³äÇøÓò, ÓÒ±ßÏß¿ØÖÆÊúÖ±Ìî³äÇøÓò. ºÜ¼òµ¥°É? ÈÃÎÒÃÇÒ»ÆðÓä¿ìµØºÍ9PatchÍæË£°É!
±¾ÎİæÈ¨¹éÀÖÓã²¥¿ÍAndroidÅàѵѧԺËùÓУ¬»¶Ó×ªÔØ£¬×ªÔØÇë×¢Ã÷×÷Õß³ö´¦¡£Ð»Ð»£¡
×÷ÕߣºÀÖÓã²¥¿ÍAndroidÅàѵѧԺ
Ê×·¢£ºhttp://www.itcast.cn/android/