网络资源模板--Android Studio 零食工坊(商城)

目录

一、项目演示

二、项目测试环境

三、项目详情

四、完整的项目源码


一、项目演示

网络资源模板--零食工坊

二、项目测试环境

三、项目详情

  1. **加载 Fragment 布局**:
  • 使用 `inflater.inflate` 加载 `fragment_snack` 的布局。
  1. **视图组件初始化**:
  • 初始化了多个 UI 组件,包括:

  • `TabLayout` (`tabTitle`): 用于显示标签。

  • `RecyclerView` (`rvsnackList`): 用于展示零食列表。

  • 空状态布局 (`llEmpty`): 当列表为空时显示的视图。

  • 查询输入框 (`etQuery`): 供用户输入搜索关键词。

  • 搜索图标 (`ivSearch`): 触发搜索操作的图标。

  • 添加零食的浮动按钮 (`btnAdd`): 用于添加新零食。

  1. **设置搜索功能**:
  • 为搜索图标设置点击事件,点击后调用 `loadData()` 方法以加载数据。
  1. **键盘操作监听**:
  • 设置查询输入框的编辑动作监听器:

  • 当用户按下特定的键(actionId 为 3)时,隐藏键盘并调用 `loadData()` 方法。

  1. **添加零食功能**:
  • 为添加按钮设置点击事件,点击后启动 `AddSnackActivity`,并等待结果(请求码为 100)。
java 复制代码
 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_snack, container, false);
        this.tabTitle = (TabLayout) view.findViewById(R.id.tab_title);
        this.rvsnackList = (RecyclerView) view.findViewById(R.id.rv_snack_list);
        this.llEmpty = (LinearLayout) view.findViewById(R.id.ll_empty);
        this.etQuery = (EditText) view.findViewById(R.id.et_query);
        this.ivSearch = (ImageView) view.findViewById(R.id.iv_search);
        this.btnAdd = (FloatingActionButton) view.findViewById(R.id.btn_add);
        initView();
        this.ivSearch.setOnClickListener(new View.OnClickListener() {
            /* class com.example.snack.ui.fragment.SnackFragment.AnonymousClass1 */

            public void onClick(View v) {
                SnackFragment.this.loadData();
            }
        });
        this.etQuery.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            /* class com.example.snack.ui.fragment.SnackFragment.AnonymousClass2 */

            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (actionId != 3) {
                    return false;
                }
                KeyBoardUtil.hideKeyboard(v);
                SnackFragment.this.loadData();
                return true;
            }
        });
        this.btnAdd.setOnClickListener(new View.OnClickListener() {
            /* class com.example.snack.ui.fragment.SnackFragment.AnonymousClass3 */

            public void onClick(View v) {
                SnackFragment.this.startActivityForResult(new Intent(SnackFragment.this.myActivity, AddSnackActivity.class), 100);
            }
        });
        return view;
    }

在 `onCreate` 方法中,主要实现了登录界面的初始化及逻辑处理,具体功能如下:

主要功能概述

  1. **界面设置**:
  • 设置 Activity 的布局为 `activity_login`。
  1. **视图组件初始化**:
  • 初始化了多个 UI 组件,包括:

  • 账号输入框 (`etAccount`)

  • 密码输入框 (`etPassword`)

  • 注册文本 (`tvRegister`)

  • 找回密码文本 (`tv_mm`)

  • 登录按钮 (`btnLogin`)

  • 用户类型选择的单选按钮组 (`rgType`)

  • 用户和管理员的单选按钮 (`rbUser` 和 `rbAdmin`)

  • 同意协议的复选框 (`cbAgree`)

  1. **自定义 ActionBar**:
  • 初始化 `ActionBar`,设置标题和点击事件,左侧点击事件为结束当前 Activity。
  1. **点击事件处理**:
  • 注册点击事件:

  • 注册按钮:启动 `RegisterActivity`。

  • 找回密码按钮:启动 `PasswordActivity`。

  • 用户类型选择的单选按钮:保存选择的用户类型(普通用户或管理员)到 SharedPreferences。

  1. **登录逻辑**:
  • 登录按钮的点击事件处理:

  • 隐藏软键盘。

  • 获取输入的账号和密码。

  • 校验输入是否为空,并提供相应提示。

  • 检查用户是否存在,并验证密码是否正确。

  • 根据用户类型(管理员或普通用户)进行进一步验证。

  • 确认用户同意用户协议。

  • 登录成功后,将账号存入 SharedPreferences,启动 `MainActivity` 并显示成功提示。

总结

此方法清晰地组织了登录界面的逻辑,包括视图组件的初始化、事件处理和登录验证。整体结构逻辑严谨,能够有效地引导用户完成登录操作。

java 复制代码
  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.activity = this;
        setContentView(R.layout.activity_login);

        etAccount = findViewById(R.id.et_account);
        etPassword = findViewById(R.id.et_password);
        tvRegister = findViewById(R.id.tv_register);
        tv_mm = findViewById(R.id.tv_mm);
        btnLogin = findViewById(R.id.btn_login);
        rgType = findViewById(R.id.rg_type);
        rbUser = findViewById(R.id.rb_user);
        rbAdmin = findViewById(R.id.rb_admin);
        cbAgree = findViewById(R.id.cb_agree);

        ActionBar actionBar = findViewById(R.id.myActionBar);
        mTitleBar = actionBar;
        actionBar.setData(this.activity, "登录", 0, 0, 0, getResources().getColor(R.color.colorPrimary), new ActionBar.ActionBarClickListener() {
            @Override
            public void onLeftClick() {
                LoginActivity.this.finish();
            }

            @Override
            public void onRightClick() {
            }
        });

        tvRegister.setOnClickListener(v ->
                LoginActivity.this.startActivity(new Intent(LoginActivity.this.activity, RegisterActivity.class))
        );

        tv_mm.setOnClickListener(v ->
                LoginActivity.this.startActivity(new Intent(LoginActivity.this.activity, PasswordActivity.class))
        );

        rgType.setOnCheckedChangeListener((group, checkedId) ->
                SPUtils.put(LoginActivity.this.activity, SPUtils.IS_ADMIN, checkedId == R.id.rb_admin)
        );

        btnLogin.setOnClickListener(v -> {
            ((InputMethodManager) v.getContext().getSystemService("input_method")).hideSoftInputFromWindow(v.getWindowToken(), 0);
            String account = etAccount.getText().toString();
            String password = etPassword.getText().toString();
            Boolean isAdmin = (Boolean) SPUtils.get(LoginActivity.this.activity, SPUtils.IS_ADMIN, false);

            if (account.isEmpty()) {
                Toast.makeText(LoginActivity.this.activity, "账号不能为空!", Toast.LENGTH_SHORT).show();
            } else if (password.isEmpty()) {
                Toast.makeText(LoginActivity.this.activity, "密码为空!", Toast.LENGTH_SHORT).show();
            } else {
                User user = DataSupport.where("account = ?", account).findFirst(User.class);
                if (user == null) {
                    Toast.makeText(LoginActivity.this.activity, "账号不存在", Toast.LENGTH_SHORT).show();
                } else if (!password.equals(user.getPassword())) {
                    Toast.makeText(LoginActivity.this.activity, "密码错误!", Toast.LENGTH_SHORT).show();
                } else if (isAdmin && !"admin".equals(user.getAccount())) {
                    Toast.makeText(LoginActivity.this.activity, "该账号不是管理员账号!", Toast.LENGTH_SHORT).show();
                } else if (!isAdmin && "admin".equals(user.getAccount())) {
                    Toast.makeText(LoginActivity.this.activity, "该账号不是普通用户账号!", Toast.LENGTH_SHORT).show();
                } else if (!cbAgree.isChecked()) {
                    Toast.makeText(LoginActivity.this.activity, "请同意用户协议!", Toast.LENGTH_SHORT).show();
                } else {
                    SPUtils.put(LoginActivity.this, SPUtils.ACCOUNT, account);
                    LoginActivity.this.startActivity(new Intent(LoginActivity.this.activity, MainActivity.class));
                    Toast.makeText(LoginActivity.this.activity, "恭喜你,登录成功!", Toast.LENGTH_SHORT).show();
                    LoginActivity.this.finish();
                }
            }
        });
    }

XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffffff"
    android:orientation="vertical">

    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="100.0dip"
        android:layout_gravity="center"
        android:layout_marginTop="0.0dip"
        android:layout_marginBottom="50.0dip"
        android:src="@drawable/logo" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <LinearLayout
            android:id="@+id/person"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10.0dip"
            android:background="@drawable/bg_ripple"
            android:orientation="horizontal"
            android:paddingLeft="20.0dip"
            android:paddingTop="10.0dip"
            android:paddingRight="20.0dip"
            android:paddingBottom="10.0dip">

            <ImageView
                android:layout_width="25.0dip"
                android:layout_height="25.0dip"
                android:layout_gravity="center"
                android:src="@drawable/main_user_press" />

            <TextView
                android:layout_width="0.0dip"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="10.0dip"
                android:layout_weight="1.0"
                android:text="个人信息"
                android:textColor="@color/colorBlack"
                android:textSize="14.0dip" />

            <ImageView
                android:layout_width="25.0dip"
                android:layout_height="25.0dip"
                android:layout_gravity="center"
                android:src="@drawable/ic_right" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <LinearLayout
                android:id="@+id/manage"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10.0dip"
                android:background="@drawable/bg_ripple"
                android:orientation="horizontal"
                android:paddingLeft="20.0dip"
                android:paddingTop="10.0dip"
                android:paddingRight="20.0dip"
                android:paddingBottom="10.0dip">

                <ImageView
                    android:layout_width="25.0dip"
                    android:layout_height="25.0dip"
                    android:layout_gravity="center"
                    android:src="@drawable/manage" />

                <TextView
                    android:layout_width="0.0dip"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:layout_marginLeft="10.0dip"
                    android:layout_weight="1.0"
                    android:text="用户管理"
                    android:textColor="@color/colorBlack"
                    android:textSize="14.0dip" />

                <ImageView
                    android:layout_width="25.0dip"
                    android:layout_height="25.0dip"
                    android:layout_gravity="center"
                    android:src="@drawable/ic_right" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <LinearLayout
                    android:id="@+id/order"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10.0dip"
                    android:background="@drawable/bg_ripple"
                    android:orientation="horizontal"
                    android:paddingLeft="20.0dip"
                    android:paddingTop="10.0dip"
                    android:paddingRight="20.0dip"
                    android:paddingBottom="10.0dip">

                    <ImageView
                        android:layout_width="25.0dip"
                        android:layout_height="25.0dip"
                        android:layout_gravity="center"
                        android:src="@drawable/dingdan" />

                    <TextView
                        android:layout_width="0.0dip"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_marginLeft="10.0dip"
                        android:layout_weight="1.0"
                        android:text="我的订单"
                        android:textColor="@color/colorBlack"
                        android:textSize="14.0dip" />

                    <ImageView
                        android:layout_width="25.0dip"
                        android:layout_height="25.0dip"
                        android:layout_gravity="center"
                        android:src="@drawable/ic_right" />
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/browse"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10.0dip"
                    android:background="@drawable/bg_ripple"
                    android:orientation="horizontal"
                    android:paddingLeft="20.0dip"
                    android:paddingTop="10.0dip"
                    android:paddingRight="20.0dip"
                    android:paddingBottom="10.0dip">

                    <ImageView
                        android:layout_width="25.0dip"
                        android:layout_height="25.0dip"
                        android:layout_gravity="center"
                        android:src="@drawable/ic_browse" />

                    <TextView
                        android:layout_width="0.0dip"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_marginLeft="10.0dip"
                        android:layout_weight="1.0"
                        android:text="浏览记录"
                        android:textColor="@color/colorBlack"
                        android:textSize="14.0dip" />

                    <ImageView
                        android:layout_width="25.0dip"
                        android:layout_height="25.0dip"
                        android:layout_gravity="center"
                        android:src="@drawable/ic_right" />
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/security"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10.0dip"
                    android:background="@drawable/bg_ripple"
                    android:orientation="horizontal"
                    android:paddingLeft="20.0dip"
                    android:paddingTop="10.0dip"
                    android:paddingRight="20.0dip"
                    android:paddingBottom="10.0dip">

                    <ImageView
                        android:layout_width="25.0dip"
                        android:layout_height="25.0dip"
                        android:layout_gravity="center"
                        android:src="@drawable/ic_security" />

                    <TextView
                        android:layout_width="0.0dip"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_marginLeft="10.0dip"
                        android:layout_weight="1.0"
                        android:text="账号安全"
                        android:textColor="@color/colorBlack"
                        android:textSize="14.0dip" />

                    <ImageView
                        android:layout_width="25.0dip"
                        android:layout_height="25.0dip"
                        android:layout_gravity="center"
                        android:src="@drawable/ic_right" />
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/favorite"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10.0dip"
                    android:background="@drawable/bg_ripple"
                    android:orientation="horizontal"
                    android:paddingLeft="20.0dip"
                    android:paddingTop="10.0dip"
                    android:paddingRight="20.0dip"
                    android:paddingBottom="10.0dip">

                    <ImageView
                        android:layout_width="25.0dip"
                        android:layout_height="25.0dip"
                        android:layout_gravity="center"
                        android:src="@drawable/kefu" />

                    <TextView
                        android:layout_width="0.0dip"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_marginLeft="10.0dip"
                        android:layout_weight="1.0"
                        android:text="联系客服"
                        android:textColor="@color/colorBlack"
                        android:textSize="14.0dip" />

                    <ImageView
                        android:layout_width="25.0dip"
                        android:layout_height="25.0dip"
                        android:layout_gravity="center"
                        android:src="@drawable/ic_right" />
                </LinearLayout>
            </LinearLayout>

            <Button
                android:id="@+id/logout"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20.0dip"
                android:layout_marginTop="100.0dip"
                android:layout_marginRight="20.0dip"
                android:background="@drawable/btn_border_fill"
                android:text="退出登录"
                android:textColor="@color/colorWhite"
                android:textSize="18.0dip" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>
XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffffff"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/bg_border_bottom">

        <com.example.snack.widget.ActionBar
            android:id="@id/myActionBar"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="100.0dip"
        android:layout_gravity="center"
        android:layout_marginTop="0.0dip"
        android:layout_marginBottom="20.0dip"
        android:src="@drawable/logo" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="0.0dip"
        android:layout_marginBottom="40.0dip"
        android:text="修改用户信息"
        android:textColor="#ff000000"
        android:textSize="30.0dip" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingLeft="20.0dip"
        android:paddingRight="20.0dip">

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/bg_border_bottom"
            android:orientation="horizontal"
            android:paddingTop="15.0dip"
            android:paddingBottom="15.0dip">

            <TextView
                android:layout_width="70.0dip"
                android:layout_height="30.0dip"
                android:layout_weight="1.0"
                android:gravity="start"
                android:text="账 号:"
                android:textColor="#ff000000"
                android:textSize="20.0dip" />

            <TextView
                android:id="@+id/account"
                android:layout_width="248.0dip"
                android:layout_height="wrap_content"
                android:gravity="left"
                android:textSize="16.0dip" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/bg_border_bottom"
            android:orientation="horizontal"
            android:paddingTop="15.0dip"
            android:paddingBottom="15.0dip">

            <TextView
                android:layout_width="0.0dip"
                android:layout_height="30.0dip"
                android:layout_weight="1.0"
                android:gravity="start"
                android:text="昵 称:"
                android:textColor="#ff000000"
                android:textSize="20.0dip" />

            <EditText
                android:id="@id/nickName"
                android:layout_width="250.0dip"
                android:layout_height="wrap_content"
                android:gravity="left"
                android:text=""
                android:textSize="16.0dip" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/bg_border_bottom"
            android:orientation="horizontal"
            android:paddingTop="15.0dip"
            android:paddingBottom="15.0dip">

            <TextView
                android:layout_width="70.0dip"
                android:layout_height="30.0dip"
                android:layout_weight="1.0"
                android:gravity="start"
                android:text="电 话:"
                android:textColor="#ff000000"
                android:textSize="20.0dip" />

            <EditText
                android:id="@+id/phone"
                android:layout_width="250.0dip"
                android:layout_height="wrap_content"
                android:gravity="left"
                android:inputType="number"
                android:text=""
                android:textSize="16.0dip" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/bg_border_bottom"
            android:orientation="horizontal"
            android:paddingTop="15.0dip"
            android:paddingBottom="15.0dip">

            <TextView
                android:layout_width="70.0dip"
                android:layout_height="30.0dip"
                android:layout_weight="1.0"
                android:gravity="start"
                android:text="收货地址:"
                android:textColor="#ff000000"
                android:textSize="20.0dip" />

            <EditText
                android:id="@+id/address"
                android:layout_width="250.0dip"
                android:layout_height="wrap_content"
                android:gravity="left"
                android:text=""
                android:textSize="16.0dip" />
        </LinearLayout>
    </LinearLayout>

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20.0dip"
        android:background="@drawable/btn_border_fill"
        android:onClick="save"
        android:text="保存"
        android:textColor="@color/colorWhite" />
</LinearLayout>
  1. **初始化活动**:
  • 调用 `super.onCreate(savedInstanceState)`,确保基类的初始化正确执行。

  • 设置当前活动的引用为 `myActivity`。

  1. **设置布局**:
  • 使用 `setContentView(R.layout.activity_snack_add)` 加载相应的布局文件。
  1. **视图组件初始化**:
  • 找到并初始化不同的视图组件,包括文本输入框 (`etTitle`, `etIssuer`, `etImg`, `etContent`)、下拉菜单 (`spType`) 和图像视图 (`ivImg`)。
  1. **自定义 ActionBar**:
  • 获取自定义 `ActionBar` 并设置标题为"编辑零食信息"。

  • 配置返回按钮(左侧点击事件)以结束当前活动。

  • 右侧点击事件目前没有实现(留空)。

  1. **初始化其他视图组件**:
  • 调用 `initView()` 方法,可能用于设置视图的初始状态或加载数据。
java 复制代码
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.myActivity = this;
        setContentView(R.layout.activity_snack_add);
        this.etTitle = findViewById(R.id.title);
        this.etIssuer = findViewById(R.id.issuer);
        this.spType = findViewById(R.id.type);
        this.etImg = findViewById(R.id.img);
        this.etContent = findViewById(R.id.content);
        this.ivImg = findViewById(R.id.iv_img);
        ActionBar actionBar = findViewById(R.id.myActionBar);
        this.mActionBar = actionBar;
        actionBar.setData(this.myActivity, "编辑零食信息", R.drawable.ic_back, 0, 0, getResources().getColor(R.color.colorPrimary), new ActionBar.ActionBarClickListener() {
            @Override
            public void onLeftClick() {
                AddSnackActivity.this.finish();
            }

            @Override
            public void onRightClick() {
            }
        });
        initView();
    }

主要功能概述

  1. **加载 Fragment 布局**:
  • 使用 `inflater.inflate` 加载 `fragment_user` 的布局。
  1. **视图组件初始化**:
  • 初始化多个 UI 组件,包括:

  • 用户信息 (`llPerson`)

  • 安全设置 (`llSecurity`)

  • 浏览界面 (`llBrowse`)

  • 订单管理 (`order`)

  • 管理界面 (`manage`)

  • 登出按钮 (`btnLogout`)

  • 收藏夹 (`llFavorite`)

  1. **视图可见性设置**:
  • 根据用户角色(普通用户或管理员)动态设置视图的可见性:

  • 如果是管理员,隐藏收藏夹、订单和浏览界面,显示管理界面。

  • 否则,显示所有功能,除了管理界面。

  1. **点击事件处理**:
  • 为各个视图组件设置点击事件:

  • **个人信息**:点击后显示提示并启动 `PersonActivity`。

  • **管理界面**:点击后显示提示并启动 `ManageActivity`。

  • **安全设置**:点击后显示提示并启动 `PasswordActivity`。

  • **浏览界面**:点击后显示提示并启动 `BrowseActivity`。

  • **订单界面**:点击后显示提示并启动 `OrderActivity`。

  • **收藏夹**:点击后显示提示(如 QQ 联系信息)。

  • **登出按钮**:点击后显示提示,清除登录信息并返回 `LoginActivity`。

总结

这个 `Fragment` 负责用户界面的展示和操作,清晰地组织了各个功能模块。根据用户角色动态调整视图的可见性,并提供了友好的交互体验。整体结构简单易读,便于维护和扩展。

XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffffff"
    android:orientation="vertical">

    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="100.0dip"
        android:layout_gravity="center"
        android:layout_marginTop="0.0dip"
        android:layout_marginBottom="50.0dip"
        android:src="@drawable/logo" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <LinearLayout
            android:id="@+id/person"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10.0dip"
            android:background="@drawable/bg_ripple"
            android:orientation="horizontal"
            android:paddingLeft="20.0dip"
            android:paddingTop="10.0dip"
            android:paddingRight="20.0dip"
            android:paddingBottom="10.0dip">

            <ImageView
                android:layout_width="25.0dip"
                android:layout_height="25.0dip"
                android:layout_gravity="center"
                android:src="@drawable/main_user_press" />

            <TextView
                android:layout_width="0.0dip"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="10.0dip"
                android:layout_weight="1.0"
                android:text="个人信息"
                android:textColor="@color/colorBlack"
                android:textSize="14.0dip" />

            <ImageView
                android:layout_width="25.0dip"
                android:layout_height="25.0dip"
                android:layout_gravity="center"
                android:src="@drawable/ic_right" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <LinearLayout
                android:id="@+id/manage"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10.0dip"
                android:background="@drawable/bg_ripple"
                android:orientation="horizontal"
                android:paddingLeft="20.0dip"
                android:paddingTop="10.0dip"
                android:paddingRight="20.0dip"
                android:paddingBottom="10.0dip">

                <ImageView
                    android:layout_width="25.0dip"
                    android:layout_height="25.0dip"
                    android:layout_gravity="center"
                    android:src="@drawable/manage" />

                <TextView
                    android:layout_width="0.0dip"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:layout_marginLeft="10.0dip"
                    android:layout_weight="1.0"
                    android:text="用户管理"
                    android:textColor="@color/colorBlack"
                    android:textSize="14.0dip" />

                <ImageView
                    android:layout_width="25.0dip"
                    android:layout_height="25.0dip"
                    android:layout_gravity="center"
                    android:src="@drawable/ic_right" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <LinearLayout
                    android:id="@+id/order"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10.0dip"
                    android:background="@drawable/bg_ripple"
                    android:orientation="horizontal"
                    android:paddingLeft="20.0dip"
                    android:paddingTop="10.0dip"
                    android:paddingRight="20.0dip"
                    android:paddingBottom="10.0dip">

                    <ImageView
                        android:layout_width="25.0dip"
                        android:layout_height="25.0dip"
                        android:layout_gravity="center"
                        android:src="@drawable/dingdan" />

                    <TextView
                        android:layout_width="0.0dip"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_marginLeft="10.0dip"
                        android:layout_weight="1.0"
                        android:text="我的订单"
                        android:textColor="@color/colorBlack"
                        android:textSize="14.0dip" />

                    <ImageView
                        android:layout_width="25.0dip"
                        android:layout_height="25.0dip"
                        android:layout_gravity="center"
                        android:src="@drawable/ic_right" />
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/browse"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10.0dip"
                    android:background="@drawable/bg_ripple"
                    android:orientation="horizontal"
                    android:paddingLeft="20.0dip"
                    android:paddingTop="10.0dip"
                    android:paddingRight="20.0dip"
                    android:paddingBottom="10.0dip">

                    <ImageView
                        android:layout_width="25.0dip"
                        android:layout_height="25.0dip"
                        android:layout_gravity="center"
                        android:src="@drawable/ic_browse" />

                    <TextView
                        android:layout_width="0.0dip"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_marginLeft="10.0dip"
                        android:layout_weight="1.0"
                        android:text="浏览记录"
                        android:textColor="@color/colorBlack"
                        android:textSize="14.0dip" />

                    <ImageView
                        android:layout_width="25.0dip"
                        android:layout_height="25.0dip"
                        android:layout_gravity="center"
                        android:src="@drawable/ic_right" />
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/security"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10.0dip"
                    android:background="@drawable/bg_ripple"
                    android:orientation="horizontal"
                    android:paddingLeft="20.0dip"
                    android:paddingTop="10.0dip"
                    android:paddingRight="20.0dip"
                    android:paddingBottom="10.0dip">

                    <ImageView
                        android:layout_width="25.0dip"
                        android:layout_height="25.0dip"
                        android:layout_gravity="center"
                        android:src="@drawable/ic_security" />

                    <TextView
                        android:layout_width="0.0dip"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_marginLeft="10.0dip"
                        android:layout_weight="1.0"
                        android:text="账号安全"
                        android:textColor="@color/colorBlack"
                        android:textSize="14.0dip" />

                    <ImageView
                        android:layout_width="25.0dip"
                        android:layout_height="25.0dip"
                        android:layout_gravity="center"
                        android:src="@drawable/ic_right" />
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/favorite"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10.0dip"
                    android:background="@drawable/bg_ripple"
                    android:orientation="horizontal"
                    android:paddingLeft="20.0dip"
                    android:paddingTop="10.0dip"
                    android:paddingRight="20.0dip"
                    android:paddingBottom="10.0dip">

                    <ImageView
                        android:layout_width="25.0dip"
                        android:layout_height="25.0dip"
                        android:layout_gravity="center"
                        android:src="@drawable/kefu" />

                    <TextView
                        android:layout_width="0.0dip"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_marginLeft="10.0dip"
                        android:layout_weight="1.0"
                        android:text="联系客服"
                        android:textColor="@color/colorBlack"
                        android:textSize="14.0dip" />

                    <ImageView
                        android:layout_width="25.0dip"
                        android:layout_height="25.0dip"
                        android:layout_gravity="center"
                        android:src="@drawable/ic_right" />
                </LinearLayout>
            </LinearLayout>

            <Button
                android:id="@+id/logout"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20.0dip"
                android:layout_marginTop="100.0dip"
                android:layout_marginRight="20.0dip"
                android:background="@drawable/btn_border_fill"
                android:text="退出登录"
                android:textColor="@color/colorWhite"
                android:textSize="18.0dip" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

四、完整的项目源码

👇👇👇👇👇快捷获取方式👇👇👇👇👇

相关推荐
Dnelic-1 小时前
【单元测试】【Android】JUnit 4 和 JUnit 5 的差异记录
android·junit·单元测试·android studio·自学笔记
Eastsea.Chen3 小时前
MTK Android12 user版本MtkLogger
android·framework
长亭外的少年11 小时前
Kotlin 编译失败问题及解决方案:从守护进程到 Gradle 配置
android·开发语言·kotlin
建群新人小猿13 小时前
会员等级经验问题
android·开发语言·前端·javascript·php
1024小神14 小时前
tauri2.0版本开发苹果ios和安卓android应用,环境搭建和最后编译为apk
android·ios·tauri
兰琛15 小时前
20241121 android中树结构列表(使用recyclerView实现)
android·gitee
Y多了个想法15 小时前
RK3568 android11 适配敦泰触摸屏 FocalTech-ft5526
android·rk3568·触摸屏·tp·敦泰·focaltech·ft5526
NotesChapter16 小时前
Android吸顶效果,并有着ViewPager左右切换
android
_祝你今天愉快17 小时前
分析android :The binary version of its metadata is 1.8.0, expected version is 1.5.
android
暮志未晚Webgl18 小时前
109. UE5 GAS RPG 实现检查点的存档功能
android·java·ue5