2015-02-15 30 views
5

Bir AccessibilityService yazıyorum ve erişilebilirlik hizmetinin alabileceği geçerli etkinlikten görünümler için görünüm bindirmeleri oluşturmak istiyorum. Geçerli etkinlikten tüm AccessibilityNodeInfo nesnelerini almak için hiçbir sorunum yok, ancak kaplamalar oluşturmak için bu nesnelerden görünümlerin nasıl edinileceği hakkında hiçbir fikrim yok. Maalesef erişilebilirlik hizmetleriyle ilgili sadece birkaç örnek var. Belki bazılarınız zaten bu konuyla ilgili deneyime sahip. Umarım bana yardım edebilirsin! Teşekkürler!Yerleşimi oluşturmak için ErişilebilirlikNodeInfo görünümünü alın

DÜZENLEME: Bir kağıt bir faaliyetin görünümü içeriği üzerinde bindirmeleri mümkün olduğunu göstermektedir:

görüntü bindirme Android Erişilebilirlik Framework [10] bu görevler sayesinde gerçekleştirebilir. erişilebilirlik API kullanarak, o , değişiklikleri veya uygulama kodunun enstrümantasyon gerektirmeden erişebilir ve ekrandaki uygulamaların GUI düzenini incelemek yapabiliyor "*

Bağlantı:. http://www.onarlioglu.com/publications/fc2015babelcrypt.pdf

View nesneler sizinkinden ayrı bir işlemde olduğu gibi Sayfa 6 ve 8. teşekkürler!

+1

Ekran sınırlarını 'AccessibilityNodeInfo' üzerinden alın. Kaplamalarınızın ekran sınırlarına göre olan koordinatlara dönüştürün. Yerleşene çiz. – alanv

cevap

3

Sen, diğer uygulamalardan View nesneleri alınamıyor.

+0

Hızlı cevap için teşekkürler! Ancak, görünüm nesneleri üzerinde görüntü bindirmeleri oluşturmak nasıl mümkün olabilir? Bunun mümkün olabileceğini biliyorum çünkü bunun hakkında bir makale okudum. Etkinliğin GUI'si Erişilebilirlik Hizmeti aracılığıyla geçirildi ve daha sonra bindirmeleri görüntülendi. – zuuurek

+0

@zuuurek: "Ancak bakış nesneleri üzerinde görüntü bindirmeleri oluşturmak nasıl mümkün oluyor?" - Bununla ne demek istediğin hakkında hiçbir fikrim yok. “Bunun mümkün olabileceğini biliyorum, çünkü bu konuda bir yazı okurum” - bir bağlantınız var mı? – CommonsWare

+0

Düzenleme bölümüne bakın. Teşekkürler! – zuuurek

0

Erişilebilirlik hizmetlerini kullanarak pencerenin üzerine çizim bindirmeleri kolaydır. Bunun eski bir soru olduğunu biliyorum, ama yine de cevabı ekleyeceğimi düşündüm. Eğer tüm ekranı üstünden görünmez bir göreli düzen bindirme sahip olduktan sonra

RelativeLayout relativeLayout = new RelativeLayout(getContext()); 

WindowManager.LayoutParams topButtonParams = new WindowManager.LayoutParams(
    width, //The width of the screen 
    height, //The height of the screen 
    WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, 
    WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, 
    PixelFormat.TRANSLUCENT); 

//Just trust me, this alpha thing is important. I know it's weird on a "translucent" view. 
topButtonParams.alpha = 100; 

relativeLayout.setLayoutParams(topButtonParams); 

mWindowManager.addView(relativeLayout, topButtonParams); 

Ayrıca, bu kolaydır manzarasına ekleyerek Manifest'inizde

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

yılında bu izni gerekiyor!