你必須使用窗口管理器,用於此目的
首先添加許可清單中
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
添加要顯示的圖像。
chatheadImg = (ImageView)chatheadView.findViewById(R.id.chathead_img);
然後製作服務並添加窗口管理器。
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.LEFT;
params.x = 0;
params.y = 100;
而剛剛註冊的視圖觸摸事件
chatheadView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//To do
break;
case MotionEvent.ACTION_MOVE:
break;
});
檢查這些教程爲了更好地理解
http://www.androidhive.info/2016/11/android-floating-widget-like-facebook-chat-head/
https://github.com/henrychuangtw/Android-ChatHead
感謝這個答案,但我真不」不想向我的用戶索取該許可。沒有這個權限的任何方式將不勝感激。 – Anthonyeef
在android 6.0下面,你不需要問那個權限,但是啓動android 6.0你必須明確地要求權限。 –