一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

AndroidUI優(yōu)化4

 xrzs 2010-02-21

Android UI 優(yōu)化4 收藏



有一句古話:不論黑貓白貓,能抓到耗子就是好貓。這個(gè)也許在某些方面是有道理的,但對于我們追求精益求精的思想是背道而馳的,往往就是因?yàn)闈M足于一個(gè)結(jié)果,而放棄探求更加優(yōu)化的處理方法。

當(dāng)關(guān)注應(yīng)用程序或者游戲所達(dá)到的結(jié)果時(shí),往往非常容易忽視一些優(yōu)化的問題,例如內(nèi)存優(yōu)化,線程優(yōu)化,Media優(yōu)化和UI優(yōu)化等等。不同的模塊都存在更為巧妙的方式來對待一般性問題,所以每當(dāng)我們實(shí)現(xiàn)一個(gè)行為后,稍微多花一些時(shí)間來考慮目前所作的工作是否存在更為高效的解決辦法。
這一次我們對常用的UI Layout優(yōu)化說起,這個(gè)例子轉(zhuǎn)載于 android developing blog
Android中最常用LinearLayout表示UI的框架,而且也是最直觀和方便的方法。例如創(chuàng)建一個(gè)UI用于展現(xiàn)Item的基本內(nèi)容。如圖所示:

 

 

直接可以通過LinearLayout快速的實(shí)現(xiàn)這個(gè)UI的排列:



View Code XML
<LinearLayout xmlns:
    android="http://schemas./apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"

    android:padding="6dip">

    <ImageView
        android:id="@+id/icon"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_marginRight="6dip"

        android:src="@drawable/icon" />

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="fill_parent">

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1"

            android:gravity="center_vertical"
            android:text="My Application" />

        <TextView  
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1" 

            android:singleLine="true"
            android:ellipsize="marquee"
            android:text="Simple application that shows how to use RelativeLayout" />

    </LinearLayout>

</LinearLayout>

盡管可以通過Linearlayout實(shí)現(xiàn)我們所預(yù)想的結(jié)果,但是在這里存在一個(gè)優(yōu)化的問題,尤其是針對為大量Items。比較RelativeLayout和LinearLayout,在資源利用上前者會(huì)占用更少的資源而達(dá)到相同的效果,以下是用RelativeLayout實(shí)現(xiàn)的代碼:



View Code XML
<RelativeLayout xmlns:android="http://schemas./apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"

    android:padding="6dip">

    <ImageView
        android:id="@+id/icon"

        android:layout_width="wrap_content"
        android:layout_height="fill_parent"

        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true"
        android:layout_marginRight="6dip"

        android:src="@drawable/icon" />

    <TextView  
        android:id="@+id/secondLine"

        android:layout_width="fill_parent"
        android:layout_height="26dip" 

        android:layout_toRightOf="@id/icon"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"

        android:singleLine="true"
        android:ellipsize="marquee"
        android:text="Simple application that shows how to use RelativeLayout" />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"

        android:layout_toRightOf="@id/icon"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_above="@id/secondLine"
        android:layout_alignWithParentIfMissing="true"

        android:gravity="center_vertical"
        android:text="My Application" />

</RelativeLayout>

針對RelativeLayout有一點(diǎn)需要注意,因?yàn)樗鼉?nèi)部是通過多個(gè)View之間的關(guān)系而確定的框架,那么當(dāng)其中某一個(gè)View因?yàn)槟承┬枰{(diào)用GONE來完全隱藏掉后,會(huì)影響與其相關(guān)聯(lián)的Views。Android為我們提供了一個(gè)屬性 alignWithParentIfMissing 用于解決類似問題,當(dāng)某一個(gè)View無法找到與其相關(guān)聯(lián)的Views后將依據(jù)alignWithParentIfMissing的設(shè)定判斷是否與父級View對齊。


下邊是兩種不同layout在Hierarchy Viewer中的層級關(guān)系圖:


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    欧美视频在线观看一区| 亚洲午夜精品视频在线| 国产不卡视频一区在线| 91精品视频免费播放| 免费在线成人午夜视频 | 亚洲乱码av中文一区二区三区| 福利一区二区视频在线| 国产一区二区精品丝袜| 中文字字幕在线中文乱码二区| 日韩高清一区二区三区四区| 免费在线成人午夜视频| 亚洲男人的天堂就去爱| 亚洲黄香蕉视频免费看| 日韩精品中文在线观看| 国产小青蛙全集免费看| 九九热精彩视频在线播放| 男女激情视频在线免费观看| 国产成人精品一区二区在线看| 九九九热视频免费观看| 精品熟女少妇一区二区三区| 视频在线播放你懂的一区| 日本淫片一区二区三区| 最近日韩在线免费黄片| 久久偷拍视频免费观看| 国产精品福利精品福利| 日韩欧美好看的剧情片免费| 午夜精品福利视频观看| 熟妇久久人妻中文字幕| 好吊妞视频免费在线观看| 东京热男人的天堂久久综合| 精品国产亚洲av成人一区| 亚洲视频在线观看你懂的| 国产精欧美一区二区三区久久| 欧美成人国产精品高清| 日本人妻精品有码字幕| 日韩欧美一区二区不卡视频| 日本女优一区二区三区免费| 国产精品一区二区日韩新区| 日韩国产中文在线视频| 久久91精品国产亚洲| 在线免费看国产精品黄片|