編輯:關於android開發
1.標題欄
<?xml version="1.0" encoding="utf-8"?> <com.atguigu.mobileplayer2.view.TitleBar xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="55dp" android:background="#ff3097fd" android:gravity="center_vertical" android:orientation="horizontal"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8dp" android:src="@drawable/ic_topbanner_logo" /> <TextView android:id="@+id/tv_search" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8dp" android:layout_weight="1" android:background="@drawable/tv_search_bg_selector" android:clickable="true" android:drawableLeft="@drawable/tv_search_drawable_selector" android:drawablePadding="3dp" android:text="全網搜索" android:textColor="@drawable/tv_search_textcolor_selector" android:textSize="14sp" /> <RelativeLayout android:id="@+id/rl_game" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp"> <TextView android:id="@+id/tv_game" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableLeft="@drawable/ic_topbanner_game" /> <ImageView android:layout_width="6dp" android:layout_height="6dp" android:layout_alignRight="@id/tv_game" android:background="@drawable/dot" /> </RelativeLayout> <ImageView android:id="@+id/iv_record" android:layout_marginLeft="5dp" android:layout_marginRight="8dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_topbanner_record" /> </com.atguigu.mobileplayer2.view.TitleBar>
----------------------------------------- android:drawableLeft="@drawable/sousuokuang_selector" sousuokuang_selector.xml 對應的是圖片 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="false" android:drawable="@drawable/ic_sousuokuang"/> <item android:state_pressed="true" android:drawable="@drawable/ic_sousuokuang_press"/> </selector> ------文字顏色--------- android:textColor="@drawable/sousuokuang_textcolor_selector" <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="false" android:color="#99ffffff"/> <item android:state_pressed="true" android:color="#ffffffff"/> </selector> ---------搜索框背景---------- android:background="@drawable/search_bg_selector" <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="false" android:drawable="@drawable/search_bg_normal"/> <item android:state_pressed="true" android:drawable="@drawable/search_bg_press" /> </selector> android:drawable="@drawable/search_bg_normal" <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="12.0dp" /> <padding android:bottom="5dp" android:left="8dp" android:right="8dp" android:top="5dp" /> <solid android:color="#ff2679ca"/> </shape> android:drawable="@drawable/search_bg_press" <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="12.0dp" /> <padding android:bottom="5dp" android:left="8dp" android:right="8dp" android:top="5dp" /> <solid android:color="#cc2679ca"/> </shape> -----------游戲------------- android:background="@drawable/gam_dot" /> <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#ffff0000"/> </shape>
2.自定義標題欄
public class TitleBar extends LinearLayout implements View.OnClickListener { private View tv_search; private View rl_game; private View iv_record; private Context context; /** * 在代碼中實例化該類的時候使用這個方法 * @param context */ public TitleBar(Context context) { this(context,null); } /** * 當在布局文件使用該類的時候,Android系統通過這個構造方法實例化該類 * @param context * @param attrs */ public TitleBar(Context context, AttributeSet attrs) { this(context, attrs,0); } /** * 當需要設置樣式的時候,可以使用該方法 * @param context * @param attrs * @param defStyleAttr */ public TitleBar(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); this.context = context; } /** * 當布局文件加載完成的時候回調這個方法 */ @Override protected void onFinishInflate() { super.onFinishInflate(); //得到孩子的實例 tv_search = getChildAt(1); rl_game = getChildAt(2); iv_record = getChildAt(3); //設置點擊事件 tv_search.setOnClickListener(this); rl_game.setOnClickListener(this); iv_record.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.tv_search://搜索 // Toast.makeText(context, "搜索", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(context,SearchActivity.class); context.startActivity(intent); break; case R.id.rl_game://游戲 Toast.makeText(context, "游戲", Toast.LENGTH_SHORT).show(); break; case R.id.iv_record://播放歷史 Toast.makeText(context, "播放歷史", Toast.LENGTH_SHORT).show(); break; } } }
3.屏蔽各個頁面重復初始化數據
1.在BasePager中添加標識字段
public abstract class BasePager { /** * 判斷是否初始化過數據 */ public boolean isInit; .... }
2.在主頁面中屏蔽
/** * 得到具體的某個孩子的實例視圖 * @return */ private BasePager getBasePager() { BasePager basePager = basePagers.get(position); if(basePager != null&&!basePager.isInit){ basePager.initData(); basePager.isInit = true; } return basePager; }
Android 手機衛士--簽名文件說明&包名說明,android衛士在《Android 手機衛士--打包生成apk維護到服務器》一文中,實現了新版本的apk到服
UI設計師不可不知的android屏幕知識,uiandroid北京尚學堂提供 不少設計師和工程師都被安卓設備紛繁的屏幕搞得暈頭轉向,我既做UI設計,也做過一點安卓界面布局
Android Demo手機獲取驗證碼 注冊很多app或者網絡賬戶的時候,經常需要手機獲取驗證碼,來完成注冊,那時年少,只是覺得手機獲取驗證碼這件事兒很好玩,並沒有關心太
RecyclerView添加頭部和底部視圖的實現,recyclerview視圖ListView是有addHeaderView和 addFooterView兩個方法的. 但