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)方法。
到此為止,已經有了大致的解決思路,接下來看看具體實現。
最終彈出效果如下圖所示