Flo*_*Flo 35 user-interface android
如何为可以在任何其他应用上显示的应用实施弹出式叠加层.
Facebook在其新的Facebook Messanger版本中实现了一个名为Chatheads的非常类似的功能.我真的很惊讶地看到这是可能的.在图像上,您会看到另一个应用程序上的聊天(右侧的狗).
完整的源代码在这里:http
://www.piwai.info/chatheads-basics
注意:您将需要<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
public class ChatHeadService extends Service {
private WindowManager windowManager;
private ImageView chatHead;
@Override public IBinder onBind(Intent intent) {
// Not used
return null;
}
@Override public void onCreate() {
super.onCreate();
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
chatHead = new ImageView(this);
chatHead.setImageResource(R.drawable.android_head);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.LEFT;
params.x = 0;
params.y = 100;
windowManager.addView(chatHead, params);
}
@Override
public void onDestroy() {
super.onDestroy();
if (chatHead != null) windowManager.removeView(chatHead);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 4
这是浮动“聊天头”样式覆盖的最小、简单且通用的示例。
它使用以下代码使事物浮动:
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
chatHead = new ImageView(this);
chatHead.setImageResource(R.drawable.floating);
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
Run Code Online (Sandbox Code Playgroud)
完整的源代码可以在这里找到(在 Apache 许可证下)。
归档时间: |
|
查看次数: |
18967 次 |
最近记录: |