android studio开发微信界面
android studio开发微信界面
功能说明:主要是做微信的简单的聊天界面,利用Fragment,进行微信界面的跳转
项目代码:
源代码地址
MainActivity.java:
package com.example.mywechat;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.ImageButton;
import android.widget.LinearLayout;
public class MainActivity extends Activity implements View.OnClickListener {
private Fragment mTab01= new weixinFragment();
private Fragment mTab02= new frdFragment();
private Fragment mTab03= new contactFragment();
private Fragment mTab04= new settingsFragment();
private FragmentManager fm;
private LinearLayout mTabWeixin;
private LinearLayout mTabFrd;
private LinearLayout mTabAddress;
private LinearLayout mTabSettings;
private ImageButton mImgWeixin;
private ImageButton mImgFrd;
private ImageButton mImgAddress;
private ImageButton mImgSettings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
initView();
initFragment();
initEvent();
selectfragment(0);
}
private void initFragment(){
fm = getFragmentManager();
FragmentTransaction transaction =fm.beginTransaction();
transaction.add(R.id.id_content, mTab01);
transaction.add(R.id.id_content, mTab02);
transaction.add(R.id.id_content, mTab03);
transaction.add(R.id.id_content, mTab04);
transaction.commit();
}
private void initView(){
mTabWeixin=(LinearLayout)findViewById(R.id.id_tab_weixin);
mTabFrd=(LinearLayout)findViewById(R.id.id_tab_frd);
mTabAddress=(LinearLayout)findViewById(R.id.id_tab_contact);
mTabSettings=(LinearLayout)findViewById(R.id.id_tab_settings);
mImgWeixin=(ImageButton)findViewById(R.id.id_tab_weixin_img);
mImgFrd=(ImageButton)findViewById(R.id.id_tab_frd_img);
mImgAddress=(ImageButton)findViewById(R.id.id_tab_contact_img);
mImgSettings=(ImageButton)findViewById(R.id.id_tab_settings_img);
}
private void initEvent(){
mTabWeixin.setOnClickListener(this);
mTabFrd.setOnClickListener(this);
mTabAddress.setOnClickListener(this);
mTabSettings.setOnClickListener(this);
}
private void hidefragment(FragmentTransaction transaction){
transaction.hide(mTab01);
transaction.hide(mTab02);
transaction.hide(mTab03);
transaction.hide(mTab04);
}
private void selectfragment(int i){
FragmentTransaction transaction=fm.beginTransaction();
hidefragment(transaction);
switch (i){
case 0:
transaction.show(mTab01);
mImgWeixin.setImageResource(R.drawable.tab_weixin_pressed);
break;
case 1:
transaction.show(mTab02);
mImgFrd.setImageResource(R.drawable.tab_find_frd_pressed);
break;
case 2:
transaction.show(mTab03);
mImgAddress.setImageResource(R.drawable.tab_address_pressed);
break;
case 3:
transaction.show(mTab04);
mImgSettings.setImageResource(R.drawable.tab_settings_pressed);
break;
default:
break;
}
transaction.commit();
}
@Override
public void onClick(View v) {
resetimg();
switch (v.getId()){
case R.id.id_tab_weixin:
selectfragment(0);
break;
case R.id.id_tab_frd:
selectfragment(1);
break;
case R.id.id_tab_contact:
selectfragment(2);
break;
case R.id.id_tab_settings:
selectfragment(3);
break;
default:
break;
}
}
public void resetimg(){
mImgWeixin.setImageResource(R.drawable.tab_weixin_normal);
mImgFrd.setImageResource(R.drawable.tab_find_frd_normal);
mImgAddress.setImageResource(R.drawable.tab_address_normal);
mImgSettings.setImageResource(R.drawable.tab_settings_normal);
}
}
运行界面展示:
android studio开发微信界面相关教程
项目首页
项目首页 分两步: 开发首页,显示前十帖子; 开发分页,分页显示所有。 开发首页 开发顺序:DAO - Service - Controller DAO (建表、实体类、Mapper 接口、Mapper 映射文件) 建表:讨论贴 content:帖子内容,不知道最大长度,故用 text 类型。 char:长度
使用WSL配合Visual Studio在本地调试linux c++程序的配置方法
使用WSL配合Visual Studio在本地调试linux c++程序的配置方法 WSL(Windows Subsystem for Linux)是win10系统下的一个linux子系统。 借助WSL可以非常方便地在本地即可调试linux下C++程序,不需借助虚拟机等途径,且不需要配置SSH。不仅开启速度非常快,而且
STM32裸机开发基础篇01-开发环境搭建(HAL库)
STM32裸机开发基础篇01-开发环境搭建(HAL库) 众所周知,在32位单片机中,STM32占有重要市场份额,其社区活动频繁,网上相关资料也比较多,无论是学习入门,还是工作使用,都无疑是极好的选择,本节开始,我们将学习如何使用STM32,首先,我们使用HAL库搭建
stm32mp157开发板常用系统工具使用
stm32mp157开发板常用系统工具使用 注意:以下操作都是在开发板上操作,我们的教程涉及多款开发板,不同的 linux 版本,命令用法可能 稍有差异。 5.1.1 df:查看系统已用空间 5.1.1.1 df 支持的命令参数简介 [[emailprotected]:~]# df [-PkmhT] [目录或档名]
【Android】Android 源码方式使用 opencv 库文件
【Android】Android 源码方式使用 opencv 库文件 使用方法 opencv 官方的 SDK 已经有编译好的 so 库,我们可以直接使用,因此我们只需要将平台架构对应的 so 库文件以及头文件提取出来,使用 Android.mk 进行预安装,然后在需要使用 opencv 程序中的 Android.
STM32裸机开发基础篇02-点亮LED (HAL库)
STM32裸机开发基础篇02-点亮LED (HAL库) 上一节,我们完成了STM32单片机开发环境的搭建,本节我们正式学习STM32单片机,编程语言的学习,通常是从第一个hello world开始,而点灯实验便是单片机学习的开始。 1. STM32最小系统简介 一个最小的STM32系统,需要有
关于php使用thrift做服务端开发的那些事
php使用thrift做服务端开发 thrift采用接口描述语言定义和创建服务,用二进制格式传输数据,体积更
Laravel + Dcat admin 开发一个健壮的 erp 项目
Laravel + Dcat admin 开发一个健壮的 erp 项目 4个月前我写过一篇文章 dcat-admin 开源框架在 erp 项目中的应用 在几个月前我只是用其完成一些功能开发。但是在项目健壮,以及代码如 dcat 一些深度结合上做的还是不够完善。这个几个月我重新在已有的经验上,