Преглед изворни кода

实现引导页和加载等待页面

Signed-off-by: duanchangpeng <838560574@qq.com>
duanchangpeng пре 5 година
родитељ
комит
ac8e016784
29 измењених фајлова са 434 додато и 225 уклоњено
  1. 1 1
      .idea/misc.xml
  2. 11 3
      app/src/main/AndroidManifest.xml
  3. 31 106
      app/src/main/java/com/example/watch/ui/activity/MainActivity.kt
  4. 12 0
      app/src/main/java/com/example/watch/ui/activity/SearchActivity.kt
  5. 108 0
      app/src/main/java/com/example/watch/ui/activity/ViewPageActivity.kt
  6. 50 0
      app/src/main/java/com/example/watch/ui/activity/WelcomeActivity.kt
  7. 111 0
      app/src/main/java/com/example/watch/ui/activity/ble.kt
  8. BIN
      app/src/main/res/drawable/band.png
  9. BIN
      app/src/main/res/drawable/dot_focus.png
  10. BIN
      app/src/main/res/drawable/dot_normal.png
  11. BIN
      app/src/main/res/drawable/help1.png
  12. BIN
      app/src/main/res/drawable/help2.png
  13. BIN
      app/src/main/res/drawable/help3.png
  14. BIN
      app/src/main/res/drawable/pageindicator_off.png
  15. BIN
      app/src/main/res/drawable/pageindicator_on.png
  16. BIN
      app/src/main/res/drawable/rank.png
  17. BIN
      app/src/main/res/drawable/run.png
  18. BIN
      app/src/main/res/drawable/statis.png
  19. 1 1
      app/src/main/res/layout/activiry_second.xml
  20. 5 107
      app/src/main/res/layout/activity_main.xml
  21. 62 0
      app/src/main/res/layout/activity_viewpage.xml
  22. 30 0
      app/src/main/res/layout/welcome_layout.xml
  23. 7 7
      app/src/main/res/menu/bottom_nav_menu.xml
  24. BIN
      app/src/main/res/mipmap-hdpi/logo.png
  25. BIN
      app/src/main/res/mipmap-mdpi/logo.png
  26. BIN
      app/src/main/res/mipmap-xhdpi/logo.png
  27. BIN
      app/src/main/res/mipmap-xxhdpi/logo.png
  28. BIN
      app/src/main/res/mipmap-xxxhdpi/logo.png
  29. 5 0
      app/src/main/res/values/strings.xml

+ 1 - 1
.idea/misc.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
 <project version="4">
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   </component>
   <component name="ProjectType">
   <component name="ProjectType">

+ 11 - 3
app/src/main/AndroidManifest.xml

@@ -7,6 +7,12 @@
     <uses-permission android:name="android.permission.INTERNET"/>
     <uses-permission android:name="android.permission.INTERNET"/>
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
+    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
+    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
     <application
     <application
         android:allowBackup="true"
         android:allowBackup="true"
         android:icon="@mipmap/logo"
         android:icon="@mipmap/logo"
@@ -14,9 +20,9 @@
         android:roundIcon="@mipmap/ic_launcher_round"
         android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true"
         android:supportsRtl="true"
         android:usesCleartextTraffic="true"
         android:usesCleartextTraffic="true"
-        android:theme="@style/Theme.Watch">
+        android:theme="@style/Theme.Design.NoActionBar">
 
 
-        <activity android:name=".ui.activity.MainActivity"
+        <activity android:name=".ui.activity.WelcomeActivity"
             android:configChanges="orientation|keyboardHidden|screenSize">
             android:configChanges="orientation|keyboardHidden|screenSize">
             <intent-filter>
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <action android:name="android.intent.action.MAIN" />
@@ -24,7 +30,9 @@
                 <category android:name="android.intent.category.LAUNCHER" />
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
             </intent-filter>
         </activity>
         </activity>
-
+        <activity android:name=".ui.activity.MainActivity" />
+        <activity android:name=".ui.activity.SearchActivity" />
+        <activity android:name=".ui.activity.ViewPageActivity" />
     </application>
     </application>
 
 
 </manifest>
 </manifest>

+ 31 - 106
app/src/main/java/com/example/watch/ui/activity/MainActivity.kt

@@ -1,51 +1,40 @@
 package com.example.watch.ui.activity
 package com.example.watch.ui.activity
 
 
-import android.Manifest
-import android.bluetooth.BluetoothAdapter
-import android.bluetooth.BluetoothDevice
-import android.bluetooth.BluetoothManager
-import android.bluetooth.le.BluetoothLeScanner
-import android.bluetooth.le.ScanCallback
-import android.bluetooth.le.ScanResult
-import android.content.Context
 import android.content.Intent
 import android.content.Intent
-import android.content.pm.PackageManager
 import android.os.Bundle
 import android.os.Bundle
-import android.os.Handler
-import android.view.Window
-import android.view.WindowManager
-import android.widget.Button
 import android.widget.Toast
 import android.widget.Toast
 import androidx.appcompat.app.AppCompatActivity
 import androidx.appcompat.app.AppCompatActivity
-import androidx.core.app.ActivityCompat
 import com.example.watch.R
 import com.example.watch.R
-import kotlinx.android.synthetic.main.activity_main.*
 
 
 
 
 class MainActivity : AppCompatActivity() {
 class MainActivity : AppCompatActivity() {
-
-    //    声明变量
-    private val REQUEST_BLUETOOTH_TURN_ON = 1
-    private val BLE_SCAN_PERIOD: Long = 10000
-    private lateinit var bleAdapter: BluetoothAdapter
-    private lateinit var bleManager: BluetoothManager
-    private lateinit var bleScanner: BluetoothLeScanner
-    private lateinit var bleScanCallback: BleScanCallback
-    private var bleScanResults = mutableMapOf<String?, BluetoothDevice?>()
-    private lateinit var bleScanHandler: Handler
-
     override fun onCreate(savedInstanceState: Bundle?) {
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         super.onCreate(savedInstanceState)
 
 
-//        去掉顶部状态栏
-        requestWindowFeature(Window.FEATURE_NO_TITLE)
-        window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
-        setContentView(R.layout.activity_main)
+        val sharedPreferences = getSharedPreferences("FirstRun", 0)
+        val first_run = sharedPreferences.getBoolean("First", true)
+        if (first_run) {
+            sharedPreferences.edit().putBoolean("First", false).commit()
+            val ViewPageActivityIntent = Intent(this, ViewPageActivity::class.java)
+            startActivity(ViewPageActivityIntent)
+        } else {
+            setContentView(R.layout.activity_main)
+        }
+
+
 
 
-////        点击按钮Toast
+//        点击按钮Toast
 //        val button4 = findViewById<Button>(R.id.CONNECT)
 //        val button4 = findViewById<Button>(R.id.CONNECT)
 //        button4.setOnClickListener {
 //        button4.setOnClickListener {
-//            Toast.makeText(this, "hello world!", Toast.LENGTH_LONG).show()
+//            Toast.makeText(this, "112233!", Toast.LENGTH_LONG).show();
+////            获取蓝牙权限
+//            val mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter()
+//            if (mBluetoothAdapter == null) {
+//                // Device does not support Bluetooth
+//                Toast.makeText(this, "当前设备不支持蓝牙!", Toast.LENGTH_LONG).show();
+//            } else {
+//                Toast.makeText(this, "当前设备不支持蓝牙!", Toast.LENGTH_LONG).show();
+//            }
 //        }
 //        }
 
 
 
 
@@ -53,87 +42,23 @@ class MainActivity : AppCompatActivity() {
 //        val intent = Intent(this, BaseActivity().javaClass)
 //        val intent = Intent(this, BaseActivity().javaClass)
 //        startActivity(intent)
 //        startActivity(intent)
 
 
-        val connectBtn = findViewById<Button>(R.id.CONNECT)
-
-        connectBtn.setOnClickListener {
-            bleScanHandler = Handler()
-            //蓝牙管理,这是系统服务可以通过getSystemService(BLUETOOTH_SERVICE)的方法获取实例
-            bleManager = getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager
-            //通过蓝牙管理实例获取适配器,然后通过扫描方法(scan)获取设备(device)
-            bleAdapter = bleManager.adapter
-            if (!bleAdapter.isEnabled) {
-                val bluetoothTurnOn = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)
-                startActivityForResult(bluetoothTurnOn, REQUEST_BLUETOOTH_TURN_ON)
-            } else {
-                bleStartScan.run()
-            }
-        }
-    }
 
 
-    //start scan
-    private val bleStartScan = Runnable {
-        bleScanner = bleAdapter.bluetoothLeScanner
-        bleScanCallback = BleScanCallback(bleScanResults)
-        bleScanCallback.setContext(this.applicationContext)
-        bleScanner.startScan(bleScanCallback)
-        Toast.makeText(this.applicationContext, "蓝牙BLE扫描开始", Toast.LENGTH_SHORT).show()
-        bleScanHandler.postDelayed(bleStopScan, this.BLE_SCAN_PERIOD)
     }
     }
 
 
-    private val bleStopScan = Runnable {
-        if (bleScanner != null) {
-            bleScanner.stopScan(bleScanCallback)
-        }
-        Toast.makeText(this.applicationContext, "蓝牙BLE扫描结束", Toast.LENGTH_SHORT).show()
-    }
 
 
-    class BleScanCallback(resultMap: MutableMap<String?, BluetoothDevice?>) : ScanCallback() {
-        var resultOfScan = resultMap
-        private var context: Context? = null
-
-        fun setContext(context: Context) {
-            this.context = context
-        }
-
-        override fun onScanResult(callbackType: Int, result: ScanResult?) {
-            addScanResult(result)
-        }
-
-        override fun onBatchScanResults(results: MutableList<ScanResult>?) {
-            results?.forEach { result -> addScanResult(result) }
-        }
+    private fun startScan() {
+        TODO("Not yet implemented")
+    }
 
 
-        override fun onScanFailed(errorCode: Int) {
-            Toast.makeText(this.context, "蓝牙BLE扫描失败" + "Error Code: " + errorCode, Toast.LENGTH_SHORT).show()
-        }
+    private fun initView() {
 
 
-        fun addScanResult(scanResult: ScanResult?) {
-            val bleDevice = scanResult?.device
-            val deviceAddress = bleDevice?.address
-            if (!resultOfScan.contains(deviceAddress)) {
-                resultOfScan.put(deviceAddress, bleDevice)
-                if (this.context != null) {
-                    Toast.makeText(this.context, bleDevice?.name + ": " + bleDevice?.address, Toast.LENGTH_SHORT).show()
-                }
-            }
-        }
-    }
+//        val navBatton = findViewById<Button>(R.id.navigation_second)
+//        navBatton.setOnClickListener {
+//            //        跳到其他页面
+//            val historyIntent = Intent(this, SearchActivity::class.java)
+//            this.startActivity(historyIntent)
+//        }
 
 
-    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
-        super.onActivityResult(requestCode, resultCode, data)
-        when (requestCode) {
-            REQUEST_BLUETOOTH_TURN_ON -> {
-                when (resultCode) {
-                    RESULT_OK -> {
-                        Toast.makeText(this.applicationContext, "蓝牙开启成功", Toast.LENGTH_SHORT).show()
-                        bleStartScan.run()
-                    }
-                    RESULT_CANCELED -> {
-                        Toast.makeText(this.applicationContext, "蓝牙开启失败", Toast.LENGTH_SHORT).show()
-                    }
-                }
-            }
-        }
     }
     }
 
 
 }
 }

+ 12 - 0
app/src/main/java/com/example/watch/ui/activity/SearchActivity.kt

@@ -0,0 +1,12 @@
+package com.example.watch.ui.activity
+
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import com.example.watch.R
+
+class SearchActivity : AppCompatActivity()  {
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        setContentView(R.layout.activity_viewpage)
+    }
+}

+ 108 - 0
app/src/main/java/com/example/watch/ui/activity/ViewPageActivity.kt

@@ -0,0 +1,108 @@
+package com.example.watch.ui.activity
+
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import com.example.watch.R
+import android.app.ActionBar
+import android.content.Intent
+import android.util.TypedValue
+import android.view.GestureDetector
+import android.view.MotionEvent
+import android.view.View
+import androidx.core.view.get
+import kotlinx.android.synthetic.main.activity_viewpage.*
+
+
+class ViewPageActivity : AppCompatActivity(), GestureDetector.OnGestureListener  {
+    private lateinit var gestureDetector: GestureDetector
+    private var index = 0
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        setContentView(R.layout.activity_viewpage)
+        btn.setOnClickListener {
+            startActivity(Intent(this, MainActivity::class.java))
+        }
+        initIndicator()
+    }
+    private fun initIndicator() {
+        val width =
+            TypedValue.applyDimension(
+                TypedValue.COMPLEX_UNIT_DIP,
+                20f,
+                resources.displayMetrics
+            ).toInt()
+        val lp = ActionBar.LayoutParams(width, width)
+        lp.rightMargin = 2 * width
+        lp.leftMargin = 2 * width
+        for (i in 0 until viewFlipper.childCount) {
+            val view = View(this)
+            view.id = i
+            view.setBackgroundResource(if (i == 0) R.drawable.dot_focus else R.drawable.dot_normal)
+            view.layoutParams = lp
+            indicator.addView(view, i)
+        }
+
+        gestureDetector = GestureDetector(this)
+    }
+
+    override fun onShowPress(e: MotionEvent?) {
+
+    }
+
+    override fun onSingleTapUp(e: MotionEvent?): Boolean {
+        return false
+    }
+
+    override fun onDown(e: MotionEvent?): Boolean {
+        return false
+    }
+
+    override fun onFling(
+        e1: MotionEvent?,
+        e2: MotionEvent?,
+        velocityX: Float,
+        velocityY: Float
+    ): Boolean {
+        e1?.let { a ->
+            e2?.let { b ->
+                if (a.x > b.x) {
+                    viewFlipper.showNext()
+                    index = if (index < 2) index + 1 else 0
+                    changeIndicator()
+                    return true
+                } else if (a.x < b.x) {
+                    viewFlipper.showNext()
+                    index = if (index > 0) index - 1 else 2
+                    changeIndicator()
+                    return true
+                }
+            }
+        }
+        return false
+    }
+
+    private fun changeIndicator() {
+        for (i in 0 until viewFlipper.childCount) {
+            indicator[i].setBackgroundResource(
+                if (i == index) R.drawable.dot_focus else R.drawable.dot_normal
+            )
+        }
+    }
+
+    override fun onScroll(
+        e1: MotionEvent?,
+        e2: MotionEvent?,
+        distanceX: Float,
+        distanceY: Float
+    ): Boolean {
+        return false
+    }
+
+    override fun onLongPress(e: MotionEvent?) {
+
+    }
+
+    override fun onTouchEvent(event: MotionEvent?): Boolean {
+        return gestureDetector.onTouchEvent(event)
+    }
+}

+ 50 - 0
app/src/main/java/com/example/watch/ui/activity/WelcomeActivity.kt

@@ -0,0 +1,50 @@
+package com.example.watch.ui.activity
+
+import android.app.Activity
+import android.content.Intent
+import android.content.pm.PackageManager
+import android.os.Bundle
+import android.os.Handler
+import android.view.View
+import android.widget.TextView
+import androidx.appcompat.app.AppCompatActivity
+import com.example.watch.R
+
+
+class WelcomeActivity : AppCompatActivity()  {
+    var localVersionName: String? = null
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        //全屏显示
+        setContentView(com.example.watch.R.layout.welcome_layout)
+        localVersionName = getVersionName()
+        //需要在延迟一段时间之后实现页面的跳转,利用handler的信息传递
+        //获得应用的版本信息
+        val tv = findViewById<View>(com.example.watch.R.id.app_version) as TextView
+        tv.text = localVersionName + "版"
+//        实现开机动画的效果,利用Handler的延时发送功能
+        Handler().postDelayed(Runnable {
+            val intent = Intent()
+            intent.setClass(this@WelcomeActivity, MainActivity::class.java)
+            startActivity(intent);
+            //将当前的界面的生命周期给结束
+            finish()
+            //知识点,包括intent的信息传递,activity的生命周期
+        }, 2000)
+    }
+
+    fun getVersionName(): String? {
+        val name: String
+        val pm = this.packageManager
+        name = try {
+            val info = pm.getPackageInfo(this.packageName, 0)
+            info.versionName
+        } catch (e: PackageManager.NameNotFoundException) {
+            // TODO Auto-generated catch block
+            e.printStackTrace()
+            return null
+        }
+        return name
+    }
+
+}

+ 111 - 0
app/src/main/java/com/example/watch/ui/activity/ble.kt

@@ -0,0 +1,111 @@
+package com.example.watch.ui.activity
+
+import android.bluetooth.BluetoothAdapter
+import android.bluetooth.BluetoothDevice
+import android.bluetooth.BluetoothManager
+import android.bluetooth.le.BluetoothLeScanner
+import android.bluetooth.le.ScanCallback
+import android.bluetooth.le.ScanResult
+import android.content.Context
+import android.content.Intent
+import android.os.Handler
+import android.widget.Button
+import android.widget.Toast
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.app.ActivityCompat.startActivityForResult
+import com.example.watch.R
+
+class ble {
+    //    声明变量
+//    private val REQUEST_BLUETOOTH_TURN_ON = 1
+//    private val BLE_SCAN_PERIOD: Long = 10000
+//    private lateinit var bleAdapter: BluetoothAdapter
+//    private lateinit var bleManager: BluetoothManager
+//    private lateinit var bleScanner: BluetoothLeScanner
+//    private lateinit var bleScanCallback: BleScanCallback
+//    private var bleScanResults = mutableMapOf<String?, BluetoothDevice?>()
+//    private lateinit var bleScanHandler: Handler
+//
+//    val connectBtn = findViewById<Button>(R.id.CONNECT)
+//
+//    connectBtn.setOnClickListener {
+//        bleScanHandler = Handler()
+//        //蓝牙管理,这是系统服务可以通过getSystemService(BLUETOOTH_SERVICE)的方法获取实例
+//        bleManager = getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager
+//        //通过蓝牙管理实例获取适配器,然后通过扫描方法(scan)获取设备(device)
+//        bleAdapter = bleManager.adapter
+//        if (!bleAdapter.isEnabled) {
+//            val bluetoothTurnOn = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)
+//            startActivityForResult(bluetoothTurnOn, REQUEST_BLUETOOTH_TURN_ON)
+//        } else {
+//            bleStartScan.run()
+//        }
+//    }
+//
+//    //start scan
+//    private val bleStartScan = Runnable {
+//        bleScanner = bleAdapter.bluetoothLeScanner
+//        bleScanCallback = BleScanCallback(bleScanResults)
+//        bleScanCallback.setContext(this.applicationContext)
+//        bleScanner.startScan(bleScanCallback)
+//        Toast.makeText(this.applicationContext, "蓝牙BLE扫描开始", Toast.LENGTH_SHORT).show()
+//        bleScanHandler.postDelayed(bleStopScan, this.BLE_SCAN_PERIOD)
+//    }
+//
+//    private val bleStopScan = Runnable {
+//        if (bleScanner != null) {
+//            bleScanner.stopScan(bleScanCallback)
+//        }
+//        Toast.makeText(this.applicationContext, "蓝牙BLE扫描结束", Toast.LENGTH_SHORT).show()
+//    }
+//
+//    class BleScanCallback(resultMap: MutableMap<String?, BluetoothDevice?>) : ScanCallback() {
+//        var resultOfScan = resultMap
+//        private var context: Context? = null
+//
+//        fun setContext(context: Context) {
+//            this.context = context
+//        }
+//
+//        override fun onScanResult(callbackType: Int, result: ScanResult?) {
+//            addScanResult(result)
+//        }
+//
+//        override fun onBatchScanResults(results: MutableList<ScanResult>?) {
+//            results?.forEach { result -> addScanResult(result) }
+//        }
+//
+//        override fun onScanFailed(errorCode: Int) {
+//            Toast.makeText(this.context, "蓝牙BLE扫描失败" + "Error Code: " + errorCode, Toast.LENGTH_SHORT).show()
+//        }
+//
+//        fun addScanResult(scanResult: ScanResult?) {
+//            val bleDevice = scanResult?.device
+//            val deviceAddress = bleDevice?.address
+//            if (!resultOfScan.contains(deviceAddress)) {
+//                resultOfScan.put(deviceAddress, bleDevice)
+//                if (this.context != null) {
+//                    Toast.makeText(this.context, bleDevice?.name + ": " + bleDevice?.address, Toast.LENGTH_SHORT).show()
+//                }
+//            }
+//        }
+//    }
+//
+//    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+//        super.onActivityResult(requestCode, resultCode, data)
+//        when (requestCode) {
+//            REQUEST_BLUETOOTH_TURN_ON -> {
+//                when (resultCode) {
+//                    AppCompatActivity.RESULT_OK -> {
+//                        Toast.makeText(this.applicationContext, "蓝牙开启成功", Toast.LENGTH_SHORT).show()
+//                        bleStartScan.run()
+//                    }
+//                    AppCompatActivity.RESULT_CANCELED -> {
+//                        Toast.makeText(this.applicationContext, "蓝牙开启失败", Toast.LENGTH_SHORT).show()
+//                    }
+//                }
+//            }
+//        }
+//    }
+
+}

BIN
app/src/main/res/drawable/band.png


BIN
app/src/main/res/drawable/dot_focus.png


BIN
app/src/main/res/drawable/dot_normal.png


BIN
app/src/main/res/drawable/help1.png


BIN
app/src/main/res/drawable/help2.png


BIN
app/src/main/res/drawable/help3.png


BIN
app/src/main/res/drawable/pageindicator_off.png


BIN
app/src/main/res/drawable/pageindicator_on.png


BIN
app/src/main/res/drawable/rank.png


BIN
app/src/main/res/drawable/run.png


BIN
app/src/main/res/drawable/statis.png


+ 1 - 1
app/src/main/res/layout/activiry_second.xml

@@ -17,6 +17,6 @@
             android:layout_width="wrap_content"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_height="wrap_content"
             android:layout_weight="1"
             android:layout_weight="1"
-            android:text="TextView" />
+            android:text="secondPage" />
     </LinearLayout>
     </LinearLayout>
 </androidx.constraintlayout.widget.ConstraintLayout>
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 5 - 107
app/src/main/res/layout/activity_main.xml

@@ -18,127 +18,25 @@
         <LinearLayout
         <LinearLayout
             android:id="@+id/main_lt"
             android:id="@+id/main_lt"
             android:layout_width="match_parent"
             android:layout_width="match_parent"
-            android:layout_height="735dp"
+            android:layout_height="721dp"
             android:orientation="horizontal">
             android:orientation="horizontal">
 
 
-
             <LinearLayout
             <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:layout_height="match_parent"
                 android:layout_weight="10"
                 android:layout_weight="10"
                 android:orientation="vertical">
                 android:orientation="vertical">
-
-                <TextView
-                    android:id="@+id/textView4"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:text="TextView" />
-            </LinearLayout>
-
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="251dp"
-                android:orientation="horizontal">
-
-                <LinearLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:layout_weight="1"
-                    android:orientation="vertical">
-
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="86dp"
-                        android:orientation="horizontal">
-
-                        <TextView
-                            android:id="@+id/active"
-                            android:layout_width="wrap_content"
-                            android:layout_height="65dp"
-                            android:gravity="center"
-                            android:text="ACTIVE RANGE"
-                            android:textSize="36sp" />
-
-                        <TextView
-                            android:id="@+id/percent"
-                            android:layout_width="match_parent"
-                            android:layout_height="53dp"
-                            android:layout_weight="1"
-                            android:rotationX="8"
-                            android:text="82%"
-                            android:textSize="24sp" />
-
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:orientation="horizontal">
-
-                        <TextView
-                            android:id="@+id/CAL"
-                            android:layout_width="131dp"
-                            android:layout_height="wrap_content"
-                            android:layout_weight="1"
-                            android:text="CAL" />
-
-                        <TextView
-                            android:id="@+id/CALNUM"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_weight="1"
-                            android:text="999" />
-
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:orientation="horizontal">
-
-                        <TextView
-                            android:id="@+id/STEP"
-                            android:layout_width="131dp"
-                            android:layout_height="wrap_content"
-                            android:layout_weight="1"
-                            android:text="STEP" />
-
-                        <TextView
-                            android:id="@+id/STEPNUM"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_weight="1"
-                            android:text="999" />
-
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="36dp"
-                        android:layout_marginTop="50dp"
-                        android:orientation="horizontal">
-
-                        <Button
-                            android:id="@+id/CONNECT"
-                            android:layout_width="300dp"
-                            android:layout_height="match_parent"
-                            android:layout_weight="1"
-                            android:text="CONNECT" />
-                    </LinearLayout>
-                </LinearLayout>
-
             </LinearLayout>
             </LinearLayout>
-
         </LinearLayout>
         </LinearLayout>
-
         <com.google.android.material.bottomnavigation.BottomNavigationView
         <com.google.android.material.bottomnavigation.BottomNavigationView
             android:id="@+id/nav_view"
             android:id="@+id/nav_view"
             android:layout_width="match_parent"
             android:layout_width="match_parent"
-            android:layout_height="49dp"
-            android:layout_marginTop="1dp"
+            android:layout_height="wrap_content"
             android:background="?android:attr/windowBackground"
             android:background="?android:attr/windowBackground"
             app:menu="@menu/bottom_nav_menu"
             app:menu="@menu/bottom_nav_menu"
-            tools:ignore="MissingConstraints" />
+            tools:ignore="MissingConstraints"
+            android:layout_weight="1"
+            />
     </LinearLayout>
     </LinearLayout>
 
 
 
 

+ 62 - 0
app/src/main/res/layout/activity_viewpage.xml

@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+    <TextView
+        android:id="@+id/textView2"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/app_version" />
+    <ViewFlipper
+        android:id="@+id/viewFlipper"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <ImageView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:src="@drawable/help1"
+            android:contentDescription="@string/app_version"
+            />
+
+        <ImageView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:src="@drawable/help2"
+            android:contentDescription="@string/app_version"
+            />
+
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:background="@drawable/help3"
+            android:contentDescription="@string/app_version"
+            >
+
+            <Button
+                android:id="@+id/btn"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentBottom="true"
+                android:layout_centerHorizontal="true"
+                android:layout_marginBottom="60dp"
+                android:gravity="center"
+                android:text="@string/enter_main"
+                android:contentDescription="@string/app_version"
+                android:textSize="22sp" />
+
+
+
+        </RelativeLayout>
+
+    </ViewFlipper>
+
+    <LinearLayout
+        android:id="@+id/indicator"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal|bottom"
+        android:layout_marginBottom="30dp"
+        android:orientation="horizontal" />
+
+</FrameLayout>

+ 30 - 0
app/src/main/res/layout/welcome_layout.xml

@@ -0,0 +1,30 @@
+<?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:layout_height="match_parent"
+    android:background="@drawable/run">
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical"
+        android:layout_marginTop="200dp">
+    </LinearLayout>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical">
+
+        <TextView
+            android:id="@+id/app_version"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:text="@string/app_version"
+            android:layout_marginTop="80dp"
+            android:gravity="center"/>
+
+    </LinearLayout>
+
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 7 - 7
app/src/main/res/menu/bottom_nav_menu.xml

@@ -3,17 +3,17 @@
 
 
     <item
     <item
         android:id="@+id/navigation_home"
         android:id="@+id/navigation_home"
-        android:icon="@drawable/ic_home_black_24dp"
-        android:title="@string/title_home" />
+        android:icon="@drawable/band"
+        android:title="@string/title_band" />
 
 
     <item
     <item
-        android:id="@+id/navigation_dashboard"
-        android:icon="@drawable/ic_dashboard_black_24dp"
-        android:title="@string/title_dashboard" />
+        android:id="@+id/navigation_second"
+        android:icon="@drawable/rank"
+        android:title="@string/title_rank" />
 
 
     <item
     <item
         android:id="@+id/navigation_notifications"
         android:id="@+id/navigation_notifications"
-        android:icon="@drawable/ic_notifications_black_24dp"
-        android:title="@string/title_notifications" />
+        android:icon="@drawable/statis"
+        android:title="@string/title_statis" />
 
 
 </menu>
 </menu>

BIN
app/src/main/res/mipmap-hdpi/logo.png


BIN
app/src/main/res/mipmap-mdpi/logo.png


BIN
app/src/main/res/mipmap-xhdpi/logo.png


BIN
app/src/main/res/mipmap-xxhdpi/logo.png


BIN
app/src/main/res/mipmap-xxxhdpi/logo.png


+ 5 - 0
app/src/main/res/values/strings.xml

@@ -3,4 +3,9 @@
     <string name="title_home">Home</string>
     <string name="title_home">Home</string>
     <string name="title_dashboard">Dashboard</string>
     <string name="title_dashboard">Dashboard</string>
     <string name="title_notifications">Notifications</string>
     <string name="title_notifications">Notifications</string>
+    <string name="title_band">心率带</string>
+    <string name="title_rank">风云榜</string>
+    <string name="title_statis">运动统计</string>
+    <string name="app_version">1.0.0</string>
+    <string name="enter_main">进入主页</string>
 </resources>
 </resources>