2016-03-28 63 views
1

çalışmıyor tarih:Her aşağıdaki resimde gibi (tüm uygulamaları ve ...) görebilirsiniz düşünüyorum üzerinde görüneceği böylece üstünde her zaman olduğu gibi bir katman yapmak istiyorum her zaman üst düzen

enter image description here

o ide (android stüdyo) hiçbir hata var ama buna sadece hayır görünümü ile beyaz bir ekran gösterir ve logCat hata altına

E/sanat görebilirsiniz, çalışmaz: setrlimit (RLIMIT_CORE) pid için başarısız oldu 18140: Çalışmaya izin verilmiyor

Manifest

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.tpck.myapp"> 
<application 
android:allowBackup="true" 
android:icon="@mipmap/ic_launcher" 
android:label="@string/app_name" 
android:supportsRtl="true" 
android:theme="@style/AppTheme"> 

<meta-data 
    android:name="com.google.android.gms.version" 
    android:value="@integer/google_play_services_version" /> 

<activity android:name=".AAA" 
    android:exported="true"> 

    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 

     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 

</activity> 

<service 
    android:name="HUD" 
    android:exported="false" 
    /> 
</application> 

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 

</manifest> 

MainActivity

package com.tpck.myapp; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
public class AAA extends Activity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
Intent svc = new Intent(this, OverlayShowingService.class); 
startService(svc); 
    } 
} 

Servis

package com.tpck.myapp; 

import android.app.Service; 
import android.content.Context; 
import android.content.Intent; 
import android.graphics.Canvas; 
import android.graphics.Paint; 
import android.graphics.PixelFormat; 
import android.os.IBinder; 
import android.view.Gravity; 
import android.view.MotionEvent; 
import android.view.ViewGroup; 
import android.view.WindowManager; 
import android.widget.Toast; 

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.TYPE_SYSTEM_OVERLAY, 
     WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, 
     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 onDestroy() { 
super.onDestroy(); 
Toast.makeText(getBaseContext(),"onDestroy", Toast.LENGTH_LONG).show(); 
if(mView != null) 
{ 
    ((WindowManager) getSystemService(WINDOW_SERVICE)).removeView(mView); 
    mView = null; 
} 
    } 
} 

class HUDView extends ViewGroup { 
private Paint mLoadPaint; 

public HUDView(Context context) { 
super(context); 
Toast.makeText(getContext(),"HUDView", Toast.LENGTH_LONG).show(); 

mLoadPaint = new Paint(); 
mLoadPaint.setAntiAlias(true); 
mLoadPaint.setTextSize(10); 
mLoadPaint.setARGB(255, 255, 0, 0); 
} 

@Override 
protected void onDraw(Canvas canvas) { 
super.onDraw(canvas); 
canvas.drawText("Hello World", 5, 15, mLoadPaint); 
} 

@Override 
protected void onLayout(boolean arg0, int arg1, int arg2, int arg3, int  arg4) { 
} 

@Override 
public boolean onTouchEvent(MotionEvent event) { 


Toast.makeText(getContext(),"onTouchEvent", Toast.LENGTH_LONG).show(); 
return true; 
    } 
} 
+0

Gördüğünüz gibi ... pencerenizin her şeyin üstünde, yani zamanın üstünde gösterilmesini istersiniz. Facebook'un sohbet kafaları gibi. Bunu nasıl yapacağımı bilmiyorum ve cevabımı silerim. – rothloup

cevap

2

Floaties bir göz atın. Bu kütüphane tam olarak ne istersen yapar.

+0

tnx, kütüphanenizi kullandım ama bir sorunum var Bir bakışta bir kafaya karar verdim ve daha fazla açıklamak isterseniz uygulamayı geri döndürmek için uygulamayı geri istiyorum : Uygulamamda başka bir pencere açacak bir düğme var. Uygulamaya göre uygulama ve kafa düğmesi düğmesine tıklayarak uygulamayıma geri almak istiyorum ama kullanıcı uygulamasındaki yeni bir etkinliğe geri tıkladığında, MainActivity tekrar oluşturuldu ve tüm MainActivity düzeni öğeleri yeniden ayarlandı, bunu nasıl çözebilirim? sorun ? – roz

+0

bu, yukarıda belirtilen problemin çözümü değil ... Bu etraftaki bir iş olabilir ... – kAmol

İlgili konular