From e8cb35744614b9de403e1584c1f57254b542652e Mon Sep 17 00:00:00 2001 From: maxinyu Date: Thu, 30 Apr 2026 13:47:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AE=BE=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 1 + app/src/main/AndroidManifest.xml | 10 ++ .../adapter/AddDeviceAdapter.kt | 40 +++++ .../adapter/DeviceAdapter.kt | 8 +- .../home/AddDeviceActivity.kt | 51 ++++-- .../home/AddFamilyActivity.kt | 158 ++++++++++++++++++ .../home/HomeMenuFragment.kt | 8 + .../home/SetNameActivity.kt | 25 +++ app/src/main/res/drawable/back.png | Bin 0 -> 527 bytes app/src/main/res/drawable/go_up.png | Bin 0 -> 992 bytes app/src/main/res/drawable/ic_lock.png | Bin 0 -> 836 bytes app/src/main/res/drawable/ic_wifi.png | Bin 0 -> 674 bytes .../main/res/layout/add_device_activity.xml | 121 ++++++++++++++ .../main/res/layout/add_family_activity.xml | 141 ++++++++++++++++ .../main/res/layout/home_menu_fragment.xml | 2 + app/src/main/res/layout/item_device.xml | 67 ++++---- app/src/main/res/layout/item_device2.xml | 24 +++ .../res/layout/personal_profile_activity.xml | 22 +-- app/src/main/res/layout/set_name_activity.xml | 86 ++++++++++ 19 files changed, 700 insertions(+), 64 deletions(-) create mode 100644 app/src/main/java/com/example/defenseapplication/adapter/AddDeviceAdapter.kt create mode 100644 app/src/main/java/com/example/defenseapplication/home/AddFamilyActivity.kt create mode 100644 app/src/main/java/com/example/defenseapplication/home/SetNameActivity.kt create mode 100644 app/src/main/res/drawable/back.png create mode 100644 app/src/main/res/drawable/go_up.png create mode 100644 app/src/main/res/drawable/ic_lock.png create mode 100644 app/src/main/res/drawable/ic_wifi.png create mode 100644 app/src/main/res/layout/add_family_activity.xml create mode 100644 app/src/main/res/layout/item_device2.xml create mode 100644 app/src/main/res/layout/set_name_activity.xml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1aeaa6b..fa6f916 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -50,6 +50,7 @@ dependencies { testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) + implementation("de.hdodenhof:circleimageview:3.1.0") // Retrofit implementation("com.squareup.retrofit2:retrofit:2.9.0") // Gson 转换器 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9ac6a21..78bae90 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,10 @@ + + + + + + diff --git a/app/src/main/java/com/example/defenseapplication/adapter/AddDeviceAdapter.kt b/app/src/main/java/com/example/defenseapplication/adapter/AddDeviceAdapter.kt new file mode 100644 index 0000000..e6f181a --- /dev/null +++ b/app/src/main/java/com/example/defenseapplication/adapter/AddDeviceAdapter.kt @@ -0,0 +1,40 @@ +package com.example.defenseapplication.adapter + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.example.defenseapplication.R + +data class Device( + val name: String, + val icon: String +) +class AddDeviceAdapter(private val devices: List, private val onItemClick: (Device) -> Unit) : + RecyclerView.Adapter() { + + inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val ivIcon: ImageView = itemView.findViewById(R.id.ivDeviceIcon2) + val tvName: TextView = itemView.findViewById(R.id.tvDeviceName2) // 注意:ID 要和布局中一致 + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val view = LayoutInflater.from(parent.context).inflate(R.layout.item_device2, parent, false) + return ViewHolder(view) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + val device = devices[position] + holder.tvName.text = device.name + // 根据 icon 字符串加载对应图片(假设 icon 是本地 drawable 的名称) + val resId = holder.itemView.context.resources.getIdentifier(device.icon, "drawable", holder.itemView.context.packageName) + if (resId != 0) holder.ivIcon.setImageResource(resId) else holder.ivIcon.setImageResource(R.drawable.img) + + // 设置点击事件 + holder.itemView.setOnClickListener { onItemClick(device) } + } + + override fun getItemCount(): Int = devices.size +} \ No newline at end of file diff --git a/app/src/main/java/com/example/defenseapplication/adapter/DeviceAdapter.kt b/app/src/main/java/com/example/defenseapplication/adapter/DeviceAdapter.kt index 4dedce7..4b54ecc 100644 --- a/app/src/main/java/com/example/defenseapplication/adapter/DeviceAdapter.kt +++ b/app/src/main/java/com/example/defenseapplication/adapter/DeviceAdapter.kt @@ -40,11 +40,11 @@ class DeviceAdapter( fun bind(item: DeviceUi) { binding.tvDeviceName.text = item.name if (item.isOnline) { - binding.tvDeviceStatus.text = "\u25CF 正在运行" - binding.tvDeviceStatus.setTextColor(binding.root.context.getColor(R.color.green)) + binding.tvDeviceName.text = "\u25CF 正在运行" + binding.tvDeviceName.setTextColor(binding.root.context.getColor(R.color.green)) } else { - binding.tvDeviceStatus.text = "\u25CF 离线" - binding.tvDeviceStatus.setTextColor(binding.root.context.getColor(R.color.red)) + binding.tvDeviceName.text = "\u25CF 离线" + binding.tvDeviceName.setTextColor(binding.root.context.getColor(R.color.red)) } binding.root.setOnClickListener { onItemClick(item) diff --git a/app/src/main/java/com/example/defenseapplication/home/AddDeviceActivity.kt b/app/src/main/java/com/example/defenseapplication/home/AddDeviceActivity.kt index 7d07526..90bc425 100644 --- a/app/src/main/java/com/example/defenseapplication/home/AddDeviceActivity.kt +++ b/app/src/main/java/com/example/defenseapplication/home/AddDeviceActivity.kt @@ -1,21 +1,52 @@ package com.example.defenseapplication.home +import android.content.Intent import android.os.Bundle -import androidx.activity.enableEdgeToEdge +import android.view.View +import android.widget.Toast import androidx.appcompat.app.AppCompatActivity -import androidx.core.view.ViewCompat -import androidx.core.view.WindowInsetsCompat -import com.example.defenseapplication.R +import androidx.recyclerview.widget.GridLayoutManager +import com.example.defenseapplication.adapter.AddDeviceAdapter +import com.example.defenseapplication.adapter.Device +import com.example.defenseapplication.databinding.AddDeviceActivityBinding class AddDeviceActivity : AppCompatActivity() { + + private lateinit var binding: AddDeviceActivityBinding + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - enableEdgeToEdge() - setContentView(R.layout.add_device_activity) - ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> - val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) - v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) - insets + binding = AddDeviceActivityBinding.inflate(layoutInflater) + setContentView(binding.root) + + binding.ivBack.setOnClickListener { + finish() + } + + setupDeviceList() + } + + private fun setupDeviceList() { + val devices = listOf( + Device("智能挂式防御机", "device1"), + Device("智能防御机", "device2") + ) + + if (devices.isEmpty()) { + binding.emptyState.visibility = View.VISIBLE + binding.rvDevices.visibility = View.GONE + } else { + binding.emptyState.visibility = View.GONE + binding.rvDevices.visibility = View.VISIBLE + + binding.rvDevices.layoutManager = GridLayoutManager(this, 2) + // 传入点击回调 + binding.rvDevices.adapter = AddDeviceAdapter(devices) { device -> + // 跳转到 AddFamilyActivity(选择Wi-Fi页面) + val intent = Intent(this, AddFamilyActivity::class.java) + intent.putExtra("device_name", device.name) + startActivity(intent) + } } } } \ No newline at end of file diff --git a/app/src/main/java/com/example/defenseapplication/home/AddFamilyActivity.kt b/app/src/main/java/com/example/defenseapplication/home/AddFamilyActivity.kt new file mode 100644 index 0000000..97343e6 --- /dev/null +++ b/app/src/main/java/com/example/defenseapplication/home/AddFamilyActivity.kt @@ -0,0 +1,158 @@ +package com.example.defenseapplication.home + +import android.Manifest +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.content.IntentFilter +import android.content.pm.PackageManager +import android.net.wifi.ScanResult +import android.net.wifi.WifiManager +import android.os.Bundle +import android.text.Editable +import android.text.TextWatcher +import android.view.Gravity +import android.view.LayoutInflater +import android.view.ViewGroup +import android.widget.PopupWindow +import androidx.appcompat.app.AppCompatActivity +import androidx.core.app.ActivityCompat +import androidx.recyclerview.widget.LinearLayoutManager +import com.example.defenseapplication.R +import com.example.defenseapplication.adapter.WifiListAdapter +import com.example.defenseapplication.databinding.AddFamilyActivityBinding +import com.example.defenseapplication.databinding.DialogWifiListBinding + +class AddFamilyActivity : AppCompatActivity() { + + private lateinit var binding: AddFamilyActivityBinding + private lateinit var wifiManager: WifiManager + private lateinit var wifiScanReceiver: BroadcastReceiver + private var popupWindow: PopupWindow? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = AddFamilyActivityBinding.inflate(layoutInflater) + setContentView(binding.root) + + binding.ivBack.setOnClickListener { + finish() + } + + binding.btnSelectWifi.setOnClickListener { + showWifiListDialog() + } + + binding.etWifiName.addTextChangedListener(object : TextWatcher { + override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {} + + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {} + + override fun afterTextChanged(s: Editable?) { + updateBottomButtonVisibility() + } + }) + + binding.btnConfirm.setOnClickListener { + // 确认添加设备逻辑 + } + + wifiManager = applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager + + wifiScanReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + val success = intent.getBooleanExtra(WifiManager.EXTRA_RESULTS_UPDATED, false) + if (success) { + updateWifiList() + } + } + } + + val deviceName = intent.getStringExtra("device_name") + + binding.btnConfirm.setOnClickListener { + val intent=Intent(this, SetNameActivity::class.java) + startActivity( intent) + } + } + + private fun showWifiListDialog() { + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) + != PackageManager.PERMISSION_GRANTED || + ActivityCompat.checkSelfPermission(this, Manifest.permission.CHANGE_WIFI_STATE) + != PackageManager.PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(this, + arrayOf(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CHANGE_WIFI_STATE), + 1001) + return + } + + if (!wifiManager.isWifiEnabled) { + wifiManager.isWifiEnabled = true + } + + wifiManager.startScan() + + val dialogBinding = DialogWifiListBinding.inflate(LayoutInflater.from(this)) + popupWindow = PopupWindow( + dialogBinding.root, + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT + ).apply { + isFocusable = true + setBackgroundDrawable(null) + setOnDismissListener { + binding.maskView.visibility = android.view.View.GONE + } + showAtLocation(window.decorView, Gravity.BOTTOM, 0, 0) + } + + binding.maskView.visibility = android.view.View.VISIBLE + + dialogBinding.rvWifiList.layoutManager = LinearLayoutManager(this@AddFamilyActivity) + + val wifiList = getWifiList() + dialogBinding.rvWifiList.adapter = WifiListAdapter(wifiList) { wifiName -> + binding.etWifiName.setText(wifiName) + popupWindow?.dismiss() + } + } + + private fun updateBottomButtonVisibility() { + val wifiName = binding.etWifiName.text.toString().trim() + binding.bottomButtonLayout.visibility = + if (wifiName.isNotEmpty()) android.view.View.VISIBLE else android.view.View.GONE + } + + private fun getWifiList(): List { + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) + != PackageManager.PERMISSION_GRANTED) { + return emptyList() + } + val results: List = wifiManager.scanResults + return results.map { it.SSID }.distinct() + } + + private fun updateWifiList() { + popupWindow?.contentView?.findViewById(R.id.rvWifiList)?.let { recyclerView -> + val wifiList = getWifiList() + recyclerView.adapter = WifiListAdapter(wifiList) { wifiName -> + binding.etWifiName.setText(wifiName) + popupWindow?.dismiss() + } + } + } + + override fun onStart() { + super.onStart() + val intentFilter = IntentFilter() + intentFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION) + registerReceiver(wifiScanReceiver, intentFilter) + } + + override fun onStop() { + super.onStop() + unregisterReceiver(wifiScanReceiver) + popupWindow?.dismiss() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/defenseapplication/home/HomeMenuFragment.kt b/app/src/main/java/com/example/defenseapplication/home/HomeMenuFragment.kt index 856ea9c..c3a001c 100644 --- a/app/src/main/java/com/example/defenseapplication/home/HomeMenuFragment.kt +++ b/app/src/main/java/com/example/defenseapplication/home/HomeMenuFragment.kt @@ -70,6 +70,14 @@ class HomeMenuFragment : Fragment() { val intent = Intent(requireContext(), MessageActivity::class.java) startActivity(intent) } + binding.add.setOnClickListener { + val intent = Intent(requireContext(), AddDeviceActivity::class.java) + startActivity(intent) + } + binding.addFamily.setOnClickListener { + val intent = Intent(requireContext(), AddFamilyActivity::class.java) + startActivity(intent) + } } private fun initView() { diff --git a/app/src/main/java/com/example/defenseapplication/home/SetNameActivity.kt b/app/src/main/java/com/example/defenseapplication/home/SetNameActivity.kt new file mode 100644 index 0000000..3070a7f --- /dev/null +++ b/app/src/main/java/com/example/defenseapplication/home/SetNameActivity.kt @@ -0,0 +1,25 @@ +package com.example.defenseapplication.home + +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import com.example.defenseapplication.databinding.SetNameActivityBinding + +class SetNameActivity : AppCompatActivity() { + + private lateinit var binding: SetNameActivityBinding + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = SetNameActivityBinding.inflate(layoutInflater) + setContentView(binding.root) + + binding.ivBack.setOnClickListener { + finish() + } + + binding.btnConfirm.setOnClickListener { + val deviceName = binding.etName.text.toString().trim() + finish() + } + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/back.png b/app/src/main/res/drawable/back.png new file mode 100644 index 0000000000000000000000000000000000000000..65c0eaa281be8d80fa6b3cc069ed9ef118812848 GIT binary patch literal 527 zcmV+q0`UEbP)Px$$w@>(R7gv;lrc*KK@f#!a+?GjgHb`^U2=<}je=STb|PY{7Ft*cB3Aw(D?tS9 z#X^imTO0iY2fKtz7a}_4spZb&F-( zLF=RIx)X?ai-_~8lVTJ_o4)VAnf*{zg)oOtbVgw+Od_F(I z7^5S%q&j)3*XtWPh%ulY1OT2JjmCPpTz>7;Nmqat#Imd#L|j&)&p{BZR;$&wu2a;h zs%$npoXKPevZCzT7ebu(4M0M+Z4WWVPHEf2Fx;(FDt=!9y7XvIg{gq<-xr9qxf%2D Ray9?}002ovPDHLkV1fjw;n@HH literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/go_up.png b/app/src/main/res/drawable/go_up.png new file mode 100644 index 0000000000000000000000000000000000000000..2c54b4ce7169481774a6a0060890b5ac147e0249 GIT binary patch literal 992 zcmV<610Vc}P)bgN`|unCO>&Q4=#K z5K%u6jY;R9H(i`gUep;l2dy227FtGA;-ZpeevtLub3Csb?NVBH^G@zL=brOB zf9`o#h9avy5?R}kp5MDKJ@@sVR5JPGd}3+$-0ae>=y@?XMfk592BnJsPdP~KInTKML_CnA+px-Y)yO8Q9AXNZG zuuN+FyrRnUrM0?Swb>6Jx7pu2QB}MD2Ya2zkR=ZSO(25WJo(25;P>Zna!lt7&-EeD zi-O=lz+&?r-CzwDMqieHuC5#Z#o_d3h+bu%mmcsv-nV>~1?*Tz`G}y)AUqhbSbLWb zZ?+HDZ|V{3BM`dWAw65Z+?hylbMbvHQwvxsi-Ae20iSU;^$J7{0S`M>b*(JlQFfOg zdKcD6`wJbF*x;>?#-~nhn~pwHcy^;~0KP7eZ0NA>mOm-CrOnI&>#gw{jZ9wC|24P` ziyVERWjaz4G~Bp3jD+KY#4g!%EJ;3}IHiX>cznL#3?U8s?+ZLPD+NL5}OQZ878?P6HUOSM7pI!~j3_w5+awTVFB^9f9 zcqZE2nwYGDf>rDBtl_?_q z6D7*bnG1Yd5T^fH${d$3xLj8=0uKp9Z*w%7&J;hH}4cHp8rw-;ZZEHFYuIQv$IGBtx&$$Ml+WXZkA7jlO0b z8#!bd9qzqn^t4Wr6hZ=*0pwe3Zh4vCLryY_lF#s(2r$ub|5sNQuha;leMl5Xz#TyN z4iElY2(;5cjI)04->E+xm#>$(>}&4-0{{U3|A0-DPXGV_21!IgR09C~n*nIi=1ofg O0000n3n{25F9RV#3Ie?d2@*m} ztc#*Z=nFDP5G0B&TH74ku4=L%(tY+jFFJNO?=}g7#`E8Eo{#hV&pCUZSxo=<^ZyWN zns&tF@r1!Qx7*!q+Tf?=4IB!+Hgje!pAs$xjsa=CVL(o+oO?a5#J#{~rAJskV#UA@G*HBiNEC1VjUDe#qvd*=)9z!u`=`^aFlL z@GXL~#2uMTW-Gxda0W=C5O5MZ1n=4WCLWLfma>hFB6%SWv`E+vBvA;YXbpn~*ix3V z!r`oCw!Zvp0vh0&&1Q>2(xzA9i<>L;6bE^d(DU1INZmnu_ET&K|9CQ){EikPo=17o zssx>#ovpOuXS!opR1l!JAKx9;Pxyg@XkGBxd7|0`oNSdHHegC55yGpbPe9u&f(pUq&|wQ)I__4yPPo;|#tL=Hn&)7z1~lE?Z$;65_itz5q## z2ws!X1N2*<3w3pMedu=({X%z(fkT(1rKP0_V?XgZv?K}vr@PB(TIrI~(1b#vRW|#H zb#bF5sRBlGb8{bYYc7|2gei$a!08sqcm}R(n%05VMLY>H<&B+AX9EdW!7DLvXh{@; zwde&-)WA(1_#Qm?l$ud;2D4W0W6%6vuOlizi~KN<{*Z%1v%^6VXB2 zDE5(}FTiwTV`CihAhB@<>?FB4U?^1y#13&23Uz^d*kaK9=y^Kk7$*;i4#Tb}H3`H{ z3N3+ipp9EKq5X7}7&;NIiVYD|txzNQ2LJ&7|HS%$TmS$721!IgR09AdMomCwlC{VH O00001|X$)p9M3W=A96@n#QxUXEqYlm@C^#tMASyaJSp0+H)Irci9c&jt7Z)7_ zON(tlilXQwM)H^VFBvpuXt?CAzqinkYnt>rbSVw*ljr^JeZKek?)^ATS>xY^!HNT3 z=OZ#rbEjb#w-SlO8}br72V0;*{?0Ird$CyT5OeA|iDe7%czl=!X*Pb*H0`FUs)xyS zcoXaggXDXuUGe+<6KFG-o#D9;xWZ)+4u?aWZp`QNP10bWC>_W73P#CKwOXwd`2qMC zd;`n?2d#o z#xuJRg>V@le1u>Ne4naK(}Ofh2LgeNjDXs8a1A^Fv(&z$kvCR3&~&X< zOY){?+1mmO;WCgX2>uDPd4wjDVDT<~^L7*9HT4WosLAZdFnPsVt5&Q3VH>og%V4oW zqq5}iESH+%gj>N8aFj!AYcv|$sXqe}zxZ=NSM)SsOyk_eE*cJTsZ;Ef1_O~uWHY(K zoWEgo(z2}GXwUIX>X18n8ipI{3pd{FyM)BF((2LCd?3-U}*DwRIKuCcIgM_+@s ziiB_D5;O<~zzFaZo(;H*j~yL9cjSFj&j!qSlsh>A&e!Yp<9)k!6g?ZT$HwG2cvz`a z>a0D*Y79IzTq@cySUQoe^*jIo0RR7QjPTw7000I_L_t&o0G<67KrRqQ(*OVf07*qo IM6N<$f(;!mJ^%m! literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/add_device_activity.xml b/app/src/main/res/layout/add_device_activity.xml index 8ff8b1c..0f75742 100644 --- a/app/src/main/res/layout/add_device_activity.xml +++ b/app/src/main/res/layout/add_device_activity.xml @@ -5,6 +5,127 @@ android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="@color/white" tools:context=".home.AddDeviceActivity"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/add_family_activity.xml b/app/src/main/res/layout/add_family_activity.xml new file mode 100644 index 0000000..9a0ae7d --- /dev/null +++ b/app/src/main/res/layout/add_family_activity.xml @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/home_menu_fragment.xml b/app/src/main/res/layout/home_menu_fragment.xml index bfebc08..367263b 100644 --- a/app/src/main/res/layout/home_menu_fragment.xml +++ b/app/src/main/res/layout/home_menu_fragment.xml @@ -77,6 +77,7 @@ + android:background="@drawable/bg_white" + android:layout_marginBottom="14dp" + android:layout_gravity="center_horizontal" + android:padding="8dp"> - - + android:layout_height="80dp" + android:layout_weight="1" + android:scaleType="centerInside" + android:src="@mipmap/ic_launcher_round" /> + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@drawable/go_up" /> - + android:layout_marginTop="4dp" + android:textColor="@color/black" + android:textSize="12dp" /> - + - - - - + \ No newline at end of file diff --git a/app/src/main/res/layout/item_device2.xml b/app/src/main/res/layout/item_device2.xml new file mode 100644 index 0000000..4860241 --- /dev/null +++ b/app/src/main/res/layout/item_device2.xml @@ -0,0 +1,24 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/personal_profile_activity.xml b/app/src/main/res/layout/personal_profile_activity.xml index 0d4435e..cd1b63a 100644 --- a/app/src/main/res/layout/personal_profile_activity.xml +++ b/app/src/main/res/layout/personal_profile_activity.xml @@ -5,7 +5,7 @@ android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/message_bg" + android:background="@color/white" android:orientation="vertical" tools:context=".personal.PersonalProfileActivity"> @@ -47,22 +47,20 @@ android:id="@+id/ivAvatar" android:layout_width="112dp" android:layout_height="112dp" - android:padding="2dp" - android:src="@mipmap/ic_launcher_round" /> + android:src="@mipmap/ic_launcher_round"/> + android:layout_marginEnd="5dp"> @@ -78,6 +76,7 @@ android:id="@+id/itemNickname" android:layout_width="match_parent" android:layout_height="60dp" + android:background="@color/white" android:gravity="center_vertical" android:orientation="horizontal" android:paddingHorizontal="16dp"> @@ -120,6 +119,7 @@ android:layout_width="match_parent" android:layout_height="60dp" android:layout_marginTop="8dp" + android:background="@color/white" android:gravity="center_vertical" android:orientation="horizontal" android:paddingHorizontal="16dp"> @@ -132,7 +132,7 @@ android:textSize="16dp" /> + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file