他のすべてのウィンドウの上に表示され、(半透明の) 情報を表示するだけのオーバーレイ ウィンドウを作成しようとしています。それが私が見つけたものですが、うまくいきません:
LayoutInflater li = LayoutInflater.from(getBaseContext());
View hudView = li.inflate(R.layout.hud,null);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE|WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE|WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.RIGHT | Gravity.TOP;
params.setTitle("Load Average");
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.addView(hudView, params);
bigCntTextHud=(TextView)hudView.findViewById(R.id.bigCntTextHud);
R.layout.hud は、そのオーバーレイ ウィンドウに使用したい私のレイアウトです。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/vertLinLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="fill_horizontal"
android:orientation="vertical" >
<TextView
android:id="@+id/bigCntTextHud"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textSize="105dp"
android:textStyle="bold"
android:layout_gravity="right"
android:layout_marginTop="-30dp"
android:layout_marginBottom="0dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/bigOpenCntTextHud"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="right"
android:textSize="56dp"
android:layout_gravity="right"
android:textStyle="bold"
android:layout_marginTop="-42dp"
android:layout_marginBottom="0dp"
android:layout_marginRight="10dp"
/>
</LinearLayout>
残念ながら、戻るボタンだけがブロックされています。ホームボタンを押すと、「デスクトップ」が表示されず、空の壁紙と bigCntTextHud (間違いなく何かに設定されています) がどこにも表示されません。ここで私が間違っていることはありますか?