Android微信界面的设计 2022-09-21 13:06 115阅读 0赞 # Android微信界面的设计 # **微信主界面:** (1)整体采用垂直的LinearLayout线性布局 (2)最上面是ActionBar,搜索框SearchView,Overflow(含有4个单选菜单项) (3)中间使用ViewPager+Fragment组件,这样可实现左右滑动的界面。 (4)最下面是水平的LinearLayout线性布局:含有4个自定义的控件 ![Center][] ### **一、ActionBar,搜索框SearchView,Overflow的实现** ### 1. 取消微信标题栏图标的显示 2. 改变Overflow按钮(即界面右上角的省略号)的图标为加号 3.由于在某些机型上自带菜单键,所以2中的Overflow按钮有可能被隐藏,所以需要强行设置起显示 4.在OverflowButton展开之后,各个选项上是没有图标的。这里需要修改为显示图标。 **1、【 取消微信标题栏图标的显示】** //在Activity文件onCreate()方法当中添加函数调用即可 getActionBar().setDisplayShowHomeEnabled(false); 2、【修改Overflow按钮的图标为加号 】详见博客:http://blog.csdn.net/guyuealian/article/details/51721167 使用ActionBar时,Android系统默认给overflow是三个点的图标,如果你想修改overflow的图标,变成类似于微信“+”加号或者其他图标,可这样实现:即在values/styles.xml文件中修改和增加样式(注意:如果你的Android项目有多个values文件,如values-v11、values-14,请全部统一修改,values-v11和values-14的区别是,系统会根据不同的系统版本选择不同的显示样式) <resources> <!-- Base application theme for API 14+. This theme completely replaces AppBaseTheme from BOTH res/values/styles.xml and res/values-v11/styles.xml on API 14+ devices. --> <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- API 14 theme customizations can go here. --> <item name="android:actionOverflowButtonStyle">@style/OverflowStyle</item> </style> <style name="OverflowStyle"> <item name="android:src">@drawable/actionbar_add_icon</item> </style> </resources> 说明:上面values/styles.xml文件定义 name="android:actionOverflowButtonStyle"即表示设置overflow的样式引用资源文件样式为@style/OverflowStyle,然后在再下面定义OverflowStyle样式的drawable资料为“+”加号图标。 **3、【强制显示Overflow按钮】** ActionBar的空间有限,当选项菜单项很多时,系统会压缩到Overflow中显示,对于有MENU按键的手机,用户单击MENU按键即可查看Overflow中菜单项;对于没有MENU的手机,ActionBar会在最后显示一个有三个点的折叠图标;当用户单击该图标就会显示被隐藏的菜单项;但有时,有些手机并没有显式的显示三个点的折叠图标,这时就需要强制显示Overflow了。解决方法是使用反射机制,改变ActionBar属性,关于反射机制,请查看文章:http://www.cnblogs.com/bingoidea/archive/2009/06/21/1507889.html ![Center 1][] //这里原作者采取了一种比较高级的方式————即反射 //关于反射这里简单引用一下 //http://www.cnblogs.com/bingoidea/archive/2009/06/21/1507889.html //在这里的作用,简单地说就是可以通过秘术来获取本身不可能访问地到的属性和方法 private void setOverflowButtonAlways() throws Exception{ //获取到ViewConfiutation ViewConfiguration configuration=ViewConfiguration.get(this); //获取field Field menuKey=ViewConfiguration.class.getDeclaredField("sHasPermanetMenuKey"); //使得这个私有属性可以被访问 menuKey.setAccessible(true); //该变configuration中这个field的值 menuKey.setBoolean(configuration, false); } 4、【显示Overflow选项的图标】 知识补充:在Android中,菜单被分为如下三种:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu),这里用的是OptionsMenu 1. public boolean onCreateOptionsMenu(Menu menu):使用此方法调用OptionsMenu 。 2. public boolean onOptionsItemSelected(MenuItem item):选中菜单项后发生的动作。 3. public void onOptionsMenuClosed(Menu menu):菜单关闭后发生的动作。 4. public boolean onPrepareOptionsMenu(Menu menu):选项菜单显示之前onPrepareOptionsMenu方法会被调用,可以用此方法来根据打当时的情况调整菜单。 5. public boolean onMenuOpened(int featureId, Menu menu):单打开后发生的动作。 如果你点击一下overflow按钮去查看隐藏的Action按钮,你会发现这部分Action按钮都是只显示文字不显示图标的,如下图所示: ![Center 2][] 这是官方的默认效果,Google认为隐藏在overflow中的Action按钮都应该只显示文字。当然,如果你认为这样不够美观,希望在overflow中的Action按钮也可以显示图标,我们仍然可以想办法来改变这一默认行为。 其实,overflow中的Action按钮应不应该显示图标,是由MenuBuilder这个类的setOptionalIconsVisible方法来决定的,如果我们在overflow被展开的时候给这个方法传入true,那么里面的每一个Action按钮对应的图标就都会显示出来了。调用的方法当然仍然是用反射了,代码如下所示: //这里同代码3也是利用了Java的反射机制去修改系统默认设置 public boolean onMenuOpened(int featureId, Menu menu) { // TODO Auto-generated method stub if(featureId==Window.FEATURE_ACTION_BAR&&menu!=null){ if(menu.getClass().getSimpleName().equals("MenuBuilder")){ try { //同样先获取到需要调用的method Method m=menu.getClass(). getDeclaredMethod("setOptionalIconsVisible",Boolean.TYPE); //设为可访问 m.setAccessible(true); //调用方法 m.invoke(menu,true); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return super.onMenuOpened(featureId, menu); } 可以看到,这里我们重写了一个onMenuOpened()方法,当overflow被展开的时候就会回调这个方法,接着在这个方法的内部通过返回反射的方法将MenuBuilder的setOptionalIconsVisible变量设置为true就可以了。现在重新运行一下代码,就可以正常显示选项的图标了。 ### 二、ViewPager+Fragment组件 ### 1、【主界面中间XML文件布局】 在XML布局中间界面实现左右滑动的效果,需要用到ViewPager+Fragment组件,可以使用ViewPager标签,并将layout\_height设置为0dp。这样在后来再在底部添加底部图标时,ViewPager都将占据剩余的空间。XML代码如下面所示(PS:android:layout\_height="0dp"的意思是,待其他控件的高度确定好了后,所剩的高度空间全部留给0dp的控件) <android.support.v4.view.ViewPager android:id="@+id/id_viewpager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" > </android.support.v4.view.ViewPager> 在XML实现了ViewPager布局,显示需要组合到Fragment组件中, **【参考文章】** 【Android ActionBar完全解析】http://blog.csdn.net/guolin\_blog/article/details/18234477 (五星推荐) 【修改Overflow按钮的图标为加号 】http://blog.csdn.net/guyuealian/article/details/51721167 【仿制微信6.0界面一】http://blog.csdn.net/u012759878/article/details/44780091 【仿制微信6.0界面二】http://blog.csdn.net/u012759878/article/details/44781893 【ViewPager+Fragment基本使用方法】http://blog.csdn.net/huahuadashen/article/details/12789603 (五星推荐) [Center]: /images/20220721/d20d2d8cab7340bbac6e215913a8f617.png [Center 1]: /images/20220721/2ce940b9518a44aa8a5e363603a040c7.png [Center 2]: /images/20220721/0478b54eabb9424fa404207dd4c922c1.png
相关 微信截图不能截微信界面 有时候,大家用电脑微信快捷键 Alt + A 时,不能截取 微信窗口 界面。 大家可能很迷茫,不要慌,so easy,一招搞定 1:点击微信聊天界面 小剪刀 2: 古城微笑少年丶/ 2023年09月28日 23:09/ 0 赞/ 21 阅读
相关 java仿微信登录界面_android 界面设计潮流:仿微信5.2界面源码 package com.example.isweixin; //Download by 链接已屏蔽 import java.util.Timer; import java 灰太狼/ 2022年11月08日 14:17/ 0 赞/ 130 阅读
相关 android 微信图片浏览,Android微信图片浏览框架设计 一、业务场景 1、聊天界面发送图片==>多选点选+有右上角”发送”+图片预览==>图片预览支持右上角”发送”逻辑 2、发表动态==>多选点选+右上角”完成” + 图片预览= 朴灿烈づ我的快乐病毒、/ 2022年10月05日 00:44/ 0 赞/ 108 阅读
相关 Android微信界面的设计 Android微信界面的设计 【[尊重][Link 1] [原创,转载请注明出处][Link 1] 】http://blog.csdn.net/guyuealian/ 我会带着你远行/ 2022年09月22日 11:40/ 0 赞/ 126 阅读
相关 Android微信界面的设计 Android微信界面的设计 微信主界面: (1)整体采用垂直的LinearLayout线性布局 (2)最上面是ActionBar,搜索框SearchView,Ov ゝ一纸荒年。/ 2022年09月21日 13:06/ 0 赞/ 116 阅读
相关 Android ActionBar应用实战,高仿微信主界面的设计 版权声明:本文出自郭霖的博客,转载必须注明出处。 转载请注明出处:http://blog.csdn.net/guolin\_blog/article/details/2 偏执的太偏执、/ 2022年07月27日 15:56/ 0 赞/ 111 阅读
相关 Android仿微信界面 效果图 ![20141113215629968][] 原理介绍 ![Center][] 1、先绘制一个颜色(例如:粉红) 2、设置Mode=DST\_IN 水深无声/ 2022年07月24日 12:21/ 0 赞/ 136 阅读
相关 android 仿微信聊天界面,以及语音录制功能 本例为模仿微信聊天界面UI设计,文字发送以及语言录制UI。 1先看效果图: ![fff094d7-e27e-3a94-90e1-f8ee90452174.png][] 我会带着你远行/ 2022年06月14日 00:06/ 0 赞/ 619 阅读
相关 Android登录界面设计 Android登录界面设计 这是之前项目的一个界面,现在抽出来給大家看看。 界面: ![1][] 功能: (1)基本的判断,输入的是否为空 这里没有判 太过爱你忘了你带给我的痛/ 2022年06月09日 08:42/ 0 赞/ 141 阅读
相关 微信小程序我的界面 ![标题图][20181223233726774] 前言 感谢! 承蒙关照~ 微信小程序我的界面 界面效果: ![效果][20181223233726798] àì夳堔傛蜴生んèń/ 2021年09月17日 10:08/ 0 赞/ 323 阅读
还没有评论,来说两句吧...