1. 程式人生 > >屬性動畫+購物車+全選反選+選中計算價格+單個刪除

屬性動畫+購物車+全選反選+選中計算價格+單個刪除

微笑微笑微笑效果圖


微笑微笑微笑匯入依賴

apply plugin: 'com.android.application'
android {
    compileSdkVersion 26
buildToolsVersion "26.0.2"
defaultConfig {
        applicationId "samsung.com.yuekaolianxi"
minSdkVersion 19
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
} buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2'
, { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:26.+' compile 'com.android.support.constraint:constraint-layout:1.0.2' testCompile 'junit:junit:4.12' compile 'com.squareup.okhttp3:okhttp:3.9.0' compile 'com.google.code.gson:gson:2.8.2'
compile 'com.android.support:recyclerview-v7:26.0.0-alpha1' compile 'com.github.bumptech.glide:glide:3.7.0' compile 'org.greenrobot:eventbus:3.1.1' }
微笑微笑微笑新增許可權
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="samsung.com.yuekaolianxi">
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
        <activity android:name=".SplashActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".MainActivity"></activity>
        <activity android:name=".GoodsCartActivity"></activity>
    </application>
</manifest>
微笑微笑微笑layout包下 activity_main 佈局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
    <RelativeLayout
android:id="@+id/rlt"
android:layout_alignParentTop="true"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center_vertical">
        <ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:src="@mipmap/icon_back"/>
        <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:layout_centerHorizontal="true"
android:text="商品詳情"
/>
    </RelativeLayout>

    <LinearLayout
android:id="@+id/llt"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="50dp">
        <Button
android:id="@+id/into_carts"
android:text="購物車"
android:layout_width="wrap_content"
android:layout_weight="1"
android:layout_height="wrap_content" />
        <Button
android:id="@+id/add_carts"
android:text="加入購物車"
android:layout_width="wrap_content"
android:layout_weight="1"
android:layout_height="wrap_content" />
    </LinearLayout>
    <LinearLayout
android:layout_below="@id/rlt"
android:layout_above="@id/llt"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
        <ImageView
android:id="@+id/img_icon"
android:layout_width="match_parent"
android:layout_height="200dp" />
        <TextView
android:id="@+id/tv_title"
android:text="三隻松鼠!!!"
android:textSize="20sp"
android:layout_margin="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
        <TextView
android:id="@+id/tv_old_price"
android:text="新價:888"
android:textSize="20sp"
android:layout_margin="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
        <TextView
android:id="@+id/tv_new_price"
android:text="優惠價:999"
android:textSize="20sp"
android:textColor="#f00"
android:layout_margin="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
    </LinearLayout>
</RelativeLayout>
微笑微笑微笑layout 包下 activity_goods_cart 佈局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:layout_height="match_parent"
android:orientation="vertical"
tools:context=".GoodsCartActivity">
    <LinearLayout
android:id="@+id/top_bar"
android:layout_width="match_parent"
android:layout_height="48dp"
android:orientation="vertical" >

        <RelativeLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="@android:color/transparent"
android:orientation="vertical" >

            <ImageView
android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_gravity="center_vertical"
android:padding="12dp"
/>


            <TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:minHeight="48dp"
android:text="購物車"
android:textColor="#1a1a1a"
android:textSize="16sp"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />


        </RelativeLayout>
    </LinearLayout>
    <LinearLayout
android:id="@+id/ll_cart"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
        <ExpandableListView
android:id="@+id/edl"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"></ExpandableListView>

        <LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center_vertical"
android:orientation="horizontal">

            <CheckBox
android:id="@+id/all_chekbox"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginRight="4dp"
android:layout_weight="1"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:gravity="center"
android:minHeight="64dp"
android:text="全選"
/>

            <LinearLayout
android:id="@+id/ll_info"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="4">

                <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="20dp"
android:layout_weight="1"
android:orientation="vertical">

                    <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:orientation="horizontal">

                        <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="合計:"
android:textSize="18sp"
android:textStyle="bold" />

                        <TextView
android:id="@+id/tv_total_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0.00"
android:textColor="#f00"
android:textSize="16sp"
android:textStyle="bold" />
                    </LinearLayout>

                    <TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:text="不含運費"
android:textSize="16sp"
android:textStyle="bold" />
                </LinearLayout>

                <TextView
android:id="@+id/tv_go_to_pay"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="3"
android:background="#f00"
android:clickable="true"
android:gravity="center"
android:text="結算(0)"
android:textColor="#FAFAFA"
/>
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>

</LinearLayout>
微笑微笑微笑layout 包下 activity_splash 佈局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:layout_height="match_parent"
tools:context=".SplashActivity">
    <ImageView
android:id="@+id/img"
android:layout_centerHorizontal="true"
android:src="@mipmap/ic_launcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
微笑微笑微笑layout 包下 child_item 佈局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
    <CheckBox
android:id="@+id/child_check"
android:focusable="false"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
    <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">


        <TextView
android:text="三隻松鼠零食 開始搶購了!"
android:id="@+id/tv_title"
android:padding="10dp"
android:ellipsize="end"
android:singleLine="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

        <RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">

            <ImageView
android:id="@+id/child_img"
android:layout_width="70dp"
android:layout_height="70dp"
android:padding="10dp"
android:src="@mipmap/ic_launcher" />

            <TextView
android:id="@+id/child_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_toRightOf="@id/child_img"
android:text="166.66"
android:textColor="#f00" />

            <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:layout_toRightOf="@id/child_img"
android:orientation="horizontal">

                <ImageView
android:id="@+id/tv_del"
android:layout_width="20dp"
android:layout_height="20dp"
android:gravity="center"
android:src="@mipmap/remove"
/>

                <TextView
android:id="@+id/edt_number"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:text="1" />

                <ImageView
android:id="@+id/tv_add"
android:layout_width="19dp"
android:layout_height="19dp"
android:src="@mipmap/add"
android:gravity="center"
/>
            </LinearLayout>
            <TextView
android:id="@+id/tv_remove"
android:text="刪除"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="20dp"/>
        </RelativeLayout>

    </LinearLayout>
</LinearLayout>
微笑微笑微笑layout 包下 group_item  佈局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width=