成都创新互联网站制作重庆分公司

android仿微信,Android仿微信界面

Android仿微信全局字体大小调整

最近项目添加了一项调整应用字体大小功能,做完后空闲之余总结一下。本功能仿照微信应用“设置” - “通用” - “字体大小”功能,又有一点区别。据我所知,常见改变全局字体大小方法有两种,我把这两种分为可控和不可控,为什么这么分呢,当然不是为了方便记忆。那么简单说下两者方式的实现过程:

创新互联建站成立于2013年,先为珲春等服务建站,珲春等地企业,进行企业商务咨询服务。为珲春企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

1、不可控:通过重写Actiivity的getResources()方法更新应用的字体倍数来调整全局字体大小

2、可控:通过setTheme()方法,一开始就初始化设置不同风格的字体样式来更改全局字体大小。

而本文正式采用了第一种方案,主要是中途添加该功能,时间也不充裕,抽取字体大小又太过耗时。

微信字体大小个人猜测使用第二种方案,后者是更好的实现方式也不一定。

xml使用方式:

2、滑动按钮改变当前页面预览字体大小

3、返回时,保存放大倍数并重启应用

4、初始化应用时配置字体放大倍数。

源码地址:

到这里就结束啦。

Android 仿微信长按列表弹出PopupMenu菜单栏

弹出效果如下图所示

可以使用setGravity()方法来指定弹出窗口与anchor视图的对齐方式,例如修改对齐方式为Gravity.END

使用起来还是比较简单的,但是好像大部分项目的需求是PopupMenu在用户点击的位置弹出,然而PopupMenu并没有提供在指定坐标弹出的方法,所以只能咱们自己来实现咯!

想让PopupMenu在指定弹出位置,首先咱们得先了解show()方法是如何让PopupMenu弹出来的,所以只能去阅读源码了(Read The Fucking Source Code~)。

PopupMenu的show()方法很简单,直接把任务转给MenuPopupHelper来处理,处理流程:show() - tryShow() - showPopup(0, 0, false, false);

我们可以看到showPopup方法内有两个参数int xOffset、int yOffset,根据注释可以知道这就是相对于anchor视图的坐标值。所以如果要指定PopupMenu的弹出位置,MenuPopupHelper应该这样处理弹出逻辑:show(int x, int y) - tryShow(int x, int y) - showPopup(x, y, true, true)。

但是由于PopupMenu无法调用到MenuPopupHelper的show(int x, int y) 方法,因此我们只能使用反射机制绕过PopupMenu,直接调用MenuPopupHelper的show(int x, int y)方法。

到此为止,已经有了大致的解决思路,接下来看看具体实现。

最终弹出效果如下图所示

Android仿wx位置选择

SelectLocation: 仿微信位置选择页面 (gitee.com)

仿微信位置选择页面

仿照微信做的位置选择

使用的是高德地图,使用的时候记得换成自己的包名和key


网站标题:android仿微信,Android仿微信界面
当前URL:http://cxhlcq.com/article/dsseseo.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部