安卓移动开发实验:Android Studio设计微信界面

Posted SMing2

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓移动开发实验:Android Studio设计微信界面相关的知识,希望对你有一定的参考价值。

一.实验的目的

通过使用Android Studio的Fragment和layout,来实现简单的微信界面切换。

二.app的功能

能够通过应用底部的bottom来实现四个页面的来回切换。

三.实验过程

第一步:顶部设计:

top.xml   代码如下 :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="55dp"
    android:background="@color/black">

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="55dp"
        android:layout_weight="1"
        android:gravity="center"
        android:text="WeChat"
        android:textColor="@color/white"
        android:textSize="30sp" />
</LinearLayout>

这样就设计好了微信上方部分;

第二步:底部设计:

bottom.xml   代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:background="@color/black"


    >

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:src="@drawable/p1"

            />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="微信"
            android:textColor="@color/white"
            android:textSize="24sp" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/imageView3"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:src="@drawable/p2" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="联系人"
            android:textColor="@color/white"
            android:textSize="24sp" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/imageView4"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:src="@drawable/p3" />

        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="朋友圈"
            android:textColor="@color/white"
            android:textSize="24sp" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout4"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:src="@drawable/p4" />

        <TextView
            android:id="@+id/textView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="设置"
            android:textColor="@color/white"
            android:textSize="24sp" />

    </LinearLayout>
</LinearLayout>

 这是设置底下的四个按键部分,并且可以通过向drawable中粘贴图片将底部的四个按键图片化。

对四个按键编写xml   其中fragment_config代码如下: 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Fragment_config">

    <!-- TODO: Update blank fragment layout -->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:text="设置"
        android:textSize="35sp" />

</LinearLayout>

除此之外,还需要编写另外三个的xml,格式同上代码。

第三步:编写activity_main.xml,将top.xml和bottom.xml的界面进行合并。  代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <include
        layout="@layout/top"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />


    <FrameLayout
        android:id="@+id/id_content"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

    </FrameLayout>

    <include
        layout="@layout/bottom"
        android:gravity="bottom" />

</LinearLayout>

第四步:编写Java代码:

MainActivity.java:




    private Fragment Fragment_config=new Fragment_config();
    private Fragment Fragment_contact=new Fragment_contact();
    private Fragment Fragment_wechat=new Fragment_wechat();
    private Fragment Fragment_friend=new Fragment_friend();
    private FragmentManager fragmentManager;
    private LinearLayout linearLayout1,linearLayout2,linearLayout3,linearLayout4;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        linearLayout1=findViewById(R.id.linearLayout1);
        linearLayout2=findViewById(R.id.linearLayout2);
        linearLayout3=findViewById(R.id.linearLayout3);
        linearLayout4=findViewById(R.id.linearLayout4);

        linearLayout1.setOnClickListener(this);
        linearLayout2.setOnClickListener(this);
        linearLayout3.setOnClickListener(this);
        linearLayout4.setOnClickListener(this);

        initFragment();
    

    private void initFragment()
        fragmentManager=getFragmentManager();
        FragmentTransaction transaction=fragmentManager.beginTransaction();
        transaction.add(R.id.id_content,Fragment_wechat);
        transaction.add(R.id.id_content,Fragment_contact);
        transaction.add(R.id.id_content,Fragment_config);
        transaction.add(R.id.id_content,Fragment_friend);
        transaction.commit();
    


    private void hideFragment(FragmentTransaction transaction)
        transaction.hide(Fragment_wechat);
        transaction.hide(Fragment_contact);
        transaction.hide(Fragment_config);
        transaction.hide(Fragment_friend);
    
    private void background(View v) 
        switch (v.getId()) 
            case R.id.linearLayout1:
                linearLayout1.setBackgroundColor(Color.parseColor("#426F42"));
                break;
            case R.id.linearLayout2:
                linearLayout2.setBackgroundColor(Color.parseColor("#426F42"));
                break;
            case R.id.linearLayout3:
                linearLayout3.setBackgroundColor(Color.parseColor("#426F42"));
                break;
            case R.id.linearLayout4:
                linearLayout4.setBackgroundColor(Color.parseColor("#426F42"));
                break;
            default:
                break;
        
    

    private void backgroundreturn(View v) 
        switch (v.getId()) 
            case R.id.linearLayout1:
                linearLayout1.setBackgroundColor(Color.parseColor("#000000"));
                break;
            case R.id.linearLayout2:
                linearLayout2.setBackgroundColor(Color.parseColor("#000000"));
                break;
            case R.id.linearLayout3:
                linearLayout3.setBackgroundColor(Color.parseColor("#000000"));
                break;
            case R.id.linearLayout4:
                linearLayout4.setBackgroundColor(Color.parseColor("#000000"));
                break;
            default:
                break;
        
    

    private void showfragmnet(int i) 

        FragmentTransaction transaction=fragmentManager.beginTransaction();
        hideFragment(transaction);
        switch (i)
            case 0:
                transaction.show(Fragment_wechat);
                background(linearLayout1);
                backgroundreturn(linearLayout3);
                backgroundreturn(linearLayout2);
                backgroundreturn(linearLayout4);
                break;
            case 1:
                transaction.show(Fragment_friend);
                background(linearLayout2);
                backgroundreturn(linearLayout4);
                backgroundreturn(linearLayout1);
                backgroundreturn(linearLayout3);
                break;
            case 2:
                transaction.show(Fragment_contact);
                background(linearLayout3);
                backgroundreturn(linearLayout4);
                backgroundreturn(linearLayout2);
                backgroundreturn(linearLayout1);
                break;
            case 3:
                transaction.show(Fragment_config);
                background(linearLayout4);
                backgroundreturn(linearLayout1);
                backgroundreturn(linearLayout2);
                backgroundreturn(linearLayout3);
                break;
            default:
                break;
        
        transaction.commit();
    

    @Override
    public void onClick(View v) 
        switch (v.getId())
            case R.id.linearLayout1:
                showfragmnet(0);
                break;
            case R.id.linearLayout2:
                showfragmnet(1);
                break;
            case R.id.linearLayout3:
                showfragmnet(2);
                break;
            case R.id.linearLayout4:
                showfragmnet(3);
                break;
            default:
                break;
        
    



initFragment函数中利用transaction来实现fragment的切换

hideFragment把没有使用的界面的fragment的内容隐藏起来

background使图标点击后变绿色

backgroundreturn让图标恢复黑色

showfragmnet显示正在使用界面的fragment的内容

onClick监听函数,监听到底是哪一个图标被击中从而显示哪一个界面的内容
 

Fragment_config.java

package com.example.mywechat;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


public class Fragment_config extends Fragment 

    public Fragment_config() 
        // Required empty public constructor
    

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) 
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_config, container, false);
    

其余三个和上面格式相同。

五.app结果展示

代码仓库:android: android作业仓库

基于安卓 android studio的考试APP开发设计 前台和后台管理系统

一 项目概述

考试APP系统分为前台APP端和后台管理系统,前台APP可以注册,登录,试卷列表,开始测试,个人中心,试卷打分,试题解析,退出系统,后台管理系统 主要有 老师注册 登录,发布试卷,发布题型,试卷组卷,试卷阅卷,成绩管理,学生列表,日志管理 系统管理等等 功能太多。

二 开发工具

后台管理系统 采用流行的java技术 采用idea或者eclipse开发
APP端开发工具 采用 android studio工具开发
模拟器采用 逍遥模拟器 或者 夜神模拟器

三 项目功能结构

四 项目开发和设计

考试列表

首页功能实现:

页面通过ListView加载考试列表数据,通过Adapter去适配数据

ListView

<ListView
    android:id="@+id/paperListViewId"
     android:layout_width="match_parent"
     android:layout_height="wrap_content">
 </ListView>

Adapter

PaperAdapter adapter=new PaperAdapter(getActivity(),R.layout.paperlist_item,paperList);
listView.setAdapter(adapter);

项目内容很多,一篇文档无法概述所有内容 如果需要咨询的小伙伴 加Q Q 25 79 69 26 06

试题支持 "选择题,填空题 判断题 简答题 "

学生项目考试解析:

项目功能实现:

//从后台 查询学生的考试试题,然后加载到android 中
// Q Q  2579692606
 public void initData() {
        //获取参数 paperId
        Intent intent = getIntent();
        Long paperId = intent.getLongExtra("paperId",0L);
        StuPaperQuestion stuPaperQuestion = new StuPaperQuestion();
        stuPaperQuestion.setId(paperId); 
        stuPaperQuestion.setStuId(Long.parseLong(CommonUtils.getLoginUser(getApplicationContext()).getId()+""));
        //发送请求根据paperId 查询试题
        createPresenter().findQuestionsJxByPaperId(stuPaperQuestion);
    }
//上一题 下一题 效果
//上一题
    @OnClick(R.id.preBtn)
    public void preQ(View view){
        num = num -1;
        setQuestionUI();

    }
    //下一题
    @OnClick(R.id.nextBtn)
    public void nextQ(View view){
        num = num +1;
        setQuestionUI();
    }

项目内容很多,一篇文档无法概述所有内容 如果需要咨询的小伙伴 加Q Q 2579692606

学生考试测试

从后台查询所有的数据,然后加载到页面中,在测试的时候,点击提交之后,会自动进入下一题的测试。如图

功能实现

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //获取参数 paperId
        Intent intent = getIntent();
        Long paperId = intent.getLongExtra("paperId",0L);
        //发送请求根据paperId 查询试题
        createPresenter().findQuestionsByPaperId(paperId);   
    }

后台查询测试试题:

   @RequestMapping("/front/paper/popPaper")
   @ResponseBody
    public ResultResponse popPaper(Paper paper){

        try {
            PaperGengerateVO examPapersVO = paperService
                    .genPreviewPaperByPaperId(paper.getId());
            return ResultResponse.ok().put("data", JSON.toJSON(examPapersVO).toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ResultResponse.fail("操作失败");
    }

谢谢大家 感恩有您的阅读, 祝愿您生活灿烂如花

以上是关于安卓移动开发实验:Android Studio设计微信界面的主要内容,如果未能解决你的问题,请参考以下文章

安卓实验4 颜色字符串资源的使用

移动终端软件开发2017-2018秋学期教材《Android移动应用设计与开发(第2版)——基于Android Studio开发环境》

基于安卓 android studio的考试APP开发设计 前台和后台管理系统

基于安卓android studio的电影订票选座APP设计 前台后台

安卓小app开发之基础环境搭建

1000套安卓(Android)毕业设计(带论文)大作业实例快速下载 (Android Studio)