windowmanagerを使用し常に全面表示されつつ、メイン画面は操作できるを作ろうとしているのですが上手く行きません。
全面表示させたビューでcanvasを利用し円を描写し、円の範囲内をタッチしてドラッグさせると移動するというのを、メイン画面上で操作したいのですが、実行しても白画面のままです。
canvasを使用したプログラムは完成しておりますが、コードの記述が汚くややこしいため省略させて頂きました
java
1package com.example.sample.hippari; 2 3import android.app.Activity; 4import android.app.Service; 5import android.content.Context; 6import android.content.Intent; 7import android.graphics.Canvas; 8import android.graphics.Color; 9import android.graphics.Paint; 10import android.graphics.PixelFormat; 11import android.os.Bundle; 12import android.os.IBinder; 13import android.util.Log; 14import android.view.LayoutInflater; 15import android.view.MotionEvent; 16import android.view.SurfaceHolder; 17import android.view.SurfaceView; 18import android.view.View; 19import android.view.WindowManager; 20 21public class MainActivity extends Activity { 22 23 24 @Override 25 public void onCreate(Bundle savedInstanceState) { 26 super.onCreate(savedInstanceState); 27 28 startService(new Intent(this, AlawaysViewService.class)); 29 } 30 31 32 33 class SurfaceTestView extends SurfaceView 34 implements SurfaceHolder.Callback, View.OnTouchListener { 35 //省略していますが、canvasを利用し描写しています。 36 } 37 38 public class AlawaysViewService extends Service { 39 View player_view; 40 WindowManager wm; 41 42 @Override 43 public void onCreate() { 44 super.onCreate(); 45 } 46 47 @Override 48 public void onStart(Intent intent, int startId) { 49 super.onStart(intent, startId); 50 LayoutInflater inflater = LayoutInflater.from(this); 51 52 WindowManager.LayoutParams params 53 = new WindowManager.LayoutParams( 54 WindowManager.LayoutParams.MATCH_PARENT, 55 WindowManager.LayoutParams.WRAP_CONTENT, 56 0, 80, 57 WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, 58 WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, 59 PixelFormat.TRANSLUCENT); 60 wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE); 61 62 player_view = new SurfaceTestView(MainActivity.this); 63 64 wm.addView(player_view, params); 65 } 66 67 @Override 68 public void onDestroy() { 69 super.onDestroy(); 70 71 wm.removeView(player_view); 72 } 73 74 @Override 75 public IBinder onBind(Intent intent) { 76 return null; 77 } 78 79 } 80}
あなたの回答
tips
プレビュー