工程功能介绍 打开app,首先是个闪屏界面(常见于一般打开app时的小广告),设置时间为2s后进入登录界面。在登录界面中,中间可以输入密码,点击登录按钮进入微信的界面。 微信的界面由4个fragment组
打开app,首先是个闪屏界面(常见于一般打开app时的小广告),设置时间为2s后进入登录界面。在登录界面中,中间可以输入密码,点击登录按钮进入微信的界面。
微信的界面由4个fragment组成,第一个fragment用于显示最近收到的信息,第二个fragment用于展示通讯录,该界面用ListView制作而成;第三个是微信的发现界面,第四个fragment用于展示用户的信息。
消息界面可以通过点击联系人的方式进入聊天界面,并可与向对方发送消息,点击左上方的返回键可以退出聊天界面。
第三个fragment,也就是发现界面,因为东西有点多,所以用ScrollView作成可以滚动的布局,通过点击最上面的朋友圈栏,可以进入朋友圈界面查看朋友圈,点击左上角的返回键可以返回至发现页面。
代码中涉及到一些图片,如果需要图片文件的话可以在文章底部的工程文件中下载,图片的路径为WechatApplication\app\src\main\res\mipmap-mdpi
另外在实际操作中以这个顺序进行在中途程序可能会被打红线,别管他,代码敲完后大体就没了,或者也可以完全不安这个顺序进行。
首先我们来创建闪屏活动,先创建他的布局文件。
在layout文件夹中创建新的布局文件,命名为activity_login
接下来是他的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); }}
在layout文件夹中创建新的布局文件,命名为activity_login
在包内创建新的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
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
2024-01-21
2023-10-28
2023-10-28
2023-10-27
2023-10-27
2023-10-27
2023-10-27
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0