返回顶部
首页 > 资讯 > 移动开发 >Android Studio 制作微信界面 上
  • 430
分享到

Android Studio 制作微信界面 上

androidstudioandroid-studio 2023-10-24 17:10:16 430人浏览 独家记忆
摘要

工程功能介绍         打开app,首先是个闪屏界面(常见于一般打开app时的小广告),设置时间为2s后进入登录界面。在登录界面中,中间可以输入密码,点击登录按钮进入微信的界面。           微信的界面由4个fragment组

工程功能介绍

        打开app,首先是个闪屏界面(常见于一般打开app时的小广告),设置时间为2s后进入登录界面。在登录界面中,中间可以输入密码,点击登录按钮进入微信的界面。

 

        微信的界面由4个fragment组成,第一个fragment用于显示最近收到的信息,第二个fragment用于展示通讯录,该界面用ListView制作而成;第三个是微信的发现界面,第四个fragment用于展示用户的信息。

  

  

        消息界面可以通过点击联系人的方式进入聊天界面,并可与向对方发送消息,点击左上方的返回键可以退出聊天界面。

  

        第三个fragment,也就是发现界面,因为东西有点多,所以用ScrollView作成可以滚动的布局,通过点击最上面的朋友圈栏,可以进入朋友圈界面查看朋友圈,点击左上角的返回键可以返回至发现页面。

 

详细代码

        代码中涉及到一些图片,如果需要图片文件的话可以在文章底部的工程文件中下载,图片的路径为WechatApplication\app\src\main\res\mipmap-mdpi

        另外在实际操作中以这个顺序进行在中途程序可能会被打红线,别管他,代码敲完后大体就没了,或者也可以完全不安这个顺序进行。

        闪屏活动

                首先我们来创建闪屏活动,先创建他的布局文件。

                activity_splash.xml

                在layout文件夹中创建新的布局文件,命名为activity_login

        

                SplashActivity

                接下来是他的Java类文件,在包内创建新的Java类命名为SplashActivity

public class SplashActivity extends AppCompatActivity {    private Handler mHandler = new Handler();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_splash);        mHandler.postDelayed(new Runnable() {            @Override            public void run() {                startActivity(new Intent(SplashActivity.this,LoginActivity.class));            }        },2000);    }}

        登录界面

                activity_login.xml

                在layout文件夹中创建新的布局文件,命名为activity_login

                                                                                    

                LoginActivity.java

                在包内创建新的Java类命名为LoginActivity 

public class LoginActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_login);                Button button = findViewById(R.id.btn_login);        button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent(LoginActivity.this,MainActivity.class);                startActivity(intent);            }        });    }}

        主界面

                终于到了主界面了,首先是activity_main

                activity_main.xml

                                                                                                                                                                                    

                第一个fragment,weixin_fragment.xml

                    

                第二个fragment,tongxunlu_fragment.xml

                    

                第三个fragment,faxian_fragment.xml

                        

                第四个fragment,wode_fragment.xml

                                                            

                接下来是MainActivity.java

public class MainActivity extends AppCompatActivity implements View.OnClickListener {    private LinearLayout mMenuWeixin;    private LinearLayout mMenuTongxunlu;    private LinearLayout mMenuFaxian;    private LinearLayout mMenuWode;    private WeixinFragment weixinFragment = new WeixinFragment();    private TongxunluFragment tongxunluFragment = new TongxunluFragment();    private FaxianFragment faxianFragment = new FaxianFragment();    private WodeFragemnt wodeFragemnt = new WodeFragemnt();    ImageView weixinImg;    ImageView tongxunImg;    ImageView faxianImg;    ImageView wodeImg;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();        weixinImg = (ImageView) findViewById(R.id.caidan_weixin);        tongxunImg = (ImageView) findViewById(R.id.caidan_tongxun);        faxianImg = (ImageView) findViewById(R.id.caidain_faxian);        wodeImg = (ImageView) findViewById(R.id.caidan_wode);        this.getSupportFragmentManager().beginTransaction()                .add(R.id.container_content,weixinFragment)                .add(R.id.container_content,tongxunluFragment)                .add(R.id.container_content,faxianFragment)                .add(R.id.container_content,wodeFragemnt)                .hide(tongxunluFragment).hide(faxianFragment)                .hide(wodeFragemnt).commit();    }    private void initView() {        mMenuWeixin = this.findViewById(R.id.menu_weixin);        mMenuTongxunlu = this.findViewById(R.id.menu_tongxunlu);        mMenuFaxian = this.findViewById(R.id.menu_faxian);        mMenuWode = this.findViewById(R.id.menu_wode);        mMenuWeixin.setOnClickListener(this);        mMenuTongxunlu.setOnClickListener(this);        mMenuFaxian.setOnClickListener(this);        mMenuWode.setOnClickListener(this);    }    @Override    public void onClick(View v){        switch (v.getId()){            case R.id.menu_weixin:                weixinImg.setImageResource(R.mipmap.weixin02);                tongxunImg.setImageResource(R.mipmap.tongxunlu01);                faxianImg.setImageResource(R.mipmap.faxian01);                wodeImg.setImageResource(R.mipmap.wode01);                this.getSupportFragmentManager().beginTransaction()                    .show(weixinFragment).hide(tongxunluFragment)                    .hide(faxianFragment).hide(wodeFragemnt)                    .commit();break;            case R.id.menu_tongxunlu:                weixinImg.setImageResource(R.mipmap.weixin01);                tongxunImg.setImageResource(R.mipmap.tongxunlu02);                faxianImg.setImageResource(R.mipmap.faxian01);                wodeImg.setImageResource(R.mipmap.wode01);                this.getSupportFragmentManager().beginTransaction()                    .show(tongxunluFragment).hide(weixinFragment)                    .hide(faxianFragment).hide(wodeFragemnt)                    .commit();break;            case R.id.menu_faxian:                weixinImg.setImageResource(R.mipmap.weixin01);                tongxunImg.setImageResource(R.mipmap.tongxunlu01);                faxianImg.setImageResource(R.mipmap.faxian02);                wodeImg.setImageResource(R.mipmap.wode01);                this.getSupportFragmentManager().beginTransaction()                    .show(faxianFragment).hide(weixinFragment)                    .hide(tongxunluFragment).hide(wodeFragemnt)                    .commit();break;            case R.id.menu_wode:                weixinImg.setImageResource(R.mipmap.weixin01);                tongxunImg.setImageResource(R.mipmap.tongxunlu01);                faxianImg.setImageResource(R.mipmap.faxian01);                wodeImg.setImageResource(R.mipmap.wode02);                this.getSupportFragmentManager().beginTransaction()                    .show(wodeFragemnt).hide(tongxunluFragment)                    .hide(faxianFragment).hide(weixinFragment)                    .commit();break;            default:break;        }    }}

下一篇

至此制作已完成了一大半,接下来留到下一篇文章

Android Studio 制作微信界面 下_nazonomaster的博客-CSDN博客https://blog.csdn.net/nazonomaster/article/details/124463933

来源地址:https://blog.csdn.net/nazonomaster/article/details/124456716

--结束END--

本文标题: Android Studio 制作微信界面 上

本文链接: https://lsjlt.com/news/441745.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作