2011年9月22日木曜日

画面を持たないActivityを作る

画面を持たないActivityを作る

Activityには画面があります。しかし、今回の目的は、IntentをActivityで受け取る仕掛けを作るだけなので、画面があってはならないのです。この話は、Intentにより起動されるタイミングの続編です。

Intentを受け取るだけの目的なので、onCreateの段階でfinish()すれば良いのですが、この場合、画面が一瞬黒くなります。

なので、そもそも、画面が無いActivityを作りたいのです。しかし、その方法が分かりません。

そこで、画面を透明にする技法にしました。
やり方は、アクティビティ(画面)の背景を透過にするにはに掲載されています。
誰も、私のような目的のために、この技法を使うものとは、思うめい。へっへっへ\(^o^)/
て、いうか、私の目的以外に、どんな目的で全画面を透明にするねん(-_-;)
この技法を紹介しているサイトには、何のためにってのが書いていません。技法しか書いてない。おそらく、私と同じ目的に使おうとしていたんだよねぇ、たぶん。憎いねぇ。さすがだねぇ。ジャ(蛇)の道は蛇(ヘビ)ですな。

xmlではなく、javaでコーディングをすれば、もっと幅広い何かができるものと思いまして、いろいろ試しましたが、結論としては、javaコードで透明にすることはできない、ということです。
参考に、半透明にしようと試みたが半透明にする効果の無いプログラムを掲載しておきます。(何のために?!(-_-;))
public class InvisibleActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        WindowManager.LayoutParams wl;
        Window w;
        w = getWindow();
        wl = w.getAttributes();
        wl.alpha = 0.5f;
        wl.format = PixelFormat.RGBA_8888;
        w.setAttributes(wl);
        ColorDrawable c;
        c = new ColorDrawable(0x88ff0000);
        w.setBackgroundDrawable(c);
     }
}
普通は、このコードだけで半透明になるはずなんだが、ならない。

1 件のコメント:

  1. このコメントは投稿者によって削除されました。

    返信削除