我正在尝试创建一个始终操作顶部按钮/可点击图像,它始终位于所有窗口的顶部.
概念证明是
我已经成功并且现在有一个正在运行的服务.该服务始终在屏幕的左上角显示一些文本,而用户可以正常方式与其他应用程序自由交互.
我正在做的是子类ViewGroup并将其添加到带有标志的根窗口管理器TYPE_SYSTEM_OVERLAY.现在我想添加一个按钮/可点击图像来代替这个文本,它可以自己接收触摸事件.我尝试覆盖整个"onTouchEvent",ViewGroup但它没有收到任何事件.
如何仅在我的常见顶视图组的某些部分接收活动?请建议.
public class HUD extends Service {
HUDView mView;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
Toast.makeText(getBaseContext(),"onCreate", Toast.LENGTH_LONG).show();
mView = new HUDView(this);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
0,
// WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
// | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.RIGHT | Gravity.TOP;
params.setTitle("Load Average");
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.addView(mView, params);
}
@Override
public void …Run Code Online (Sandbox Code Playgroud) 首先,我知道之前已经问过:自定义Android Toast中的按钮?.这几乎完全重复,但我认为它基于以下事实保证一个新问题:它已经在应用程序中使用,即用于ICS的Gmail(当您删除邮件时出现).
链接的问题说,不可能在a中包含一个按钮,Toast因为Toasts无法聚焦.这是错误的,过时的,还是Gmail找到了解决办法?
我正在尝试为 toast 消息提供点击监听器。有人告诉我是否可以在 android 中为 Toast 提供点击监听器?
我正在使用 toast 的自定义视图,并且我将 onclick 侦听器应用于我的视图,但它不起作用。我 Triade 这个
LayoutInflater inflater = (LayoutInflater) ConnectToXMPP.mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.chat_message_alert_dialog,null);
TextView text = (TextView) layout.findViewById(R.id.chat_popup_message_textview);
text.setText("From : " + fromName+ "\n" + fromName);
LinearLayout chatMessageLayout = (LinearLayout)
layout.findViewById(R.id.chat_popup_message_layout);
Toast toast = new Toast(ConnectToXMPP.mContext);
toast.setView(layout);
toast.setGravity(Gravity.CENTER_VERTICAL, 0,0);
toast.setDuration(60000);
toast.getView().setClickable(true);
toast.getView().setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(ConnectToXMPP.mContext,"toast touched",Toast.LENGTH_SHORT).show();
}
});
toast.show();
Run Code Online (Sandbox Code Playgroud)