一.給出功能文檔
二.APP架構(gòu)選擇
可選MVP梢什,MVVM
三.APP目錄結(jié)構(gòu)設(shè)置
本app基于mvp架構(gòu)买置。除了mvp架構(gòu)的文件榆浓。
還包含下面的文件夾:
ui (下面根據(jù)Activity劃分)
widget (自定義dialog等)
base (BaseActivity菩混,BaseFragment)
四.劃分Activity與Fragment
有側(cè)滑欄死相,tab的一般用fragment
五.分辨率適配
設(shè)置sw-360dp,sw-480dp等不同的dimension目錄融求,根據(jù)百分比計(jì)算dp值。
六.三方庫使用
bindview使用butterknife算撮,不同組件通信使用EventBus生宛,定時(shí)使用RxJava,崩潰收集bugly
七.自定義view
按鈕樣式:
使用selector
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@mipmap/ic_button_b_pressed"/>
<item android:drawable="@mipmap/ic_button_b_normal"/>
</selector>
按鈕背景色肮柜,包括顏色和圓角
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#ff9ca4b1" />
<corners android:topLeftRadius="@dimen/dp_12_dp" android:topRightRadius="@dimen/dp_12_dp" android:bottomLeftRadius="@dimen/dp_12_dp" android:bottomRightRadius="@dimen/dp_12_dp" />
</shape>
八.布局方式
使用ConstraintLayout陷舅,直接使用標(biāo)注的值來做,最簡單审洞,不要用百分比莱睁。使用layout_constraint,layout_margin完成所有布局预明。
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:paddingBottom="@dimen/dp_24_dp"
android:layout_height="wrap_content"
android:background="@drawable/base_bg_dialog1">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="@dimen/dp_24_dp"
android:layout_marginEnd="8dp"
android:text="@string/tip"
android:textSize="@dimen/sp_20_sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="@dimen/dp_24_dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="@dimen/dp_24_dp"
android:textSize="@dimen/sp_19_sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView" />
<TextView
android:id="@+id/tv_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_24_dp"
android:layout_marginRight="@dimen/dp_60_dp"
android:padding="@dimen/dp_10_dp"
android:text="@string/cancel"
android:background="@drawable/bg_text_button2"
android:textSize="@dimen/sp_19_sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/tv_sure"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_content" />
<TextView
android:id="@+id/tv_sure"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_24_dp"
android:padding="@dimen/dp_10_dp"
android:text="@string/sure"
android:textSize="@dimen/sp_19_sp"
android:background="@drawable/bg_text_button2"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/tv_cancel"
app:layout_constraintTop_toBottomOf="@+id/tv_content" />
</androidx.constraintlayout.widget.ConstraintLayout>
在AndroidStudio直接肉眼布局缩赛,Android可以選擇不同的分辨率機(jī)器耙箍,水平或者垂直進(jìn)行預(yù)覽
九.編譯系統(tǒng)配置
配置sdk版本
配置abi
十.圖片配置
使用藍(lán)湖進(jìn)行圖片的協(xié)助撰糠。提供m,h,x,xx等不同分辨率的圖片