1. android仿微信全局字体大小调整
最近项目添加了一项调整应用字体大小功能,做完后空闲之余总结一下。本功能仿照微信应用“设置” - “通用” - “字体大小”功能,又有一点区别。据我所知,常见改变全局字体大小方法有两种,我把这两种分为可控和不可控,为什么这么分呢,当然不是为了方便记忆。那么简单说下两者方式的实现过程:
1、不可控:通过重写Actiivity的getResources()方法更新应用的字体倍数来调整全局字体大小
2、可控:通过setTheme()方法,一开始就初始化设置不同风格的字体样式来更改全局字体大小。
而本文正式采用了第一种方案,主要是中途添加该功能,时间也不充裕,抽取字体大小又太过耗时。
微信字体大小个人猜测使用第二种方案,后者是更好的实现方式也不一定。
xml使用方式:
2、滑动按钮改变当前页面预览字体大小
3、返回时,保存放大倍数并重启应用
4、初始化应用时配置字体放大倍数。
源码地址:
https://github.com/DayorNight/BLCS
到这里就结束啦。
2. 怎样实现android仿微信,qq聊天
聊天核心技术就是一个服务器推送消息到客户端。
个人比较推荐的是一些成熟的推送sdk,像网络推送,阿里云推送之类的。
我以前到是做过轮询的消息系统,不过那种太耗费性能。
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)方法。
到此为止,已经有了大致的解决思路,接下来看看具体实现。
最终弹出效果如下图所示