Hat jemand eine Ahnung, wie hier eine Helligkeit Screen Filter wie das umzusetzen:Helligkeit Screen Filter
http://www.appbrain.com/app/screen-filter/com.haxor
Ich brauche einen Ausgangspunkt und ich kann nicht herausfinden, wie es zu tun.
Hat jemand eine Ahnung, wie hier eine Helligkeit Screen Filter wie das umzusetzen:Helligkeit Screen Filter
http://www.appbrain.com/app/screen-filter/com.haxor
Ich brauche einen Ausgangspunkt und ich kann nicht herausfinden, wie es zu tun.
Machen Sie einfach eine transparente Vollbildaktivität, die Berührungen durchlässt. Um Berührungen durch die Verwendung übergeben Sie die folgenden Fenster Fahnen vor der Einstellung content:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Window window = getWindow();
// Let touches go through to apps/activities underneath.
window.addFlags(FLAG_NOT_TOUCHABLE);
// Now set up content view
setContentView(R.layout.main);
}
Für Ihre main.xml Layout-Datei verwenden, nur ein Vollbild-Linearlayout mit einem transparenten Hintergrund:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/background"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#33000000">
</LinearLayout>
Dann anpassen die „Helligkeit“ nur den Wert der irgendwo aus dem Code Hintergrundfarbe ändern:
findViewById(R.id.background).setBackgroundColor(0x66000000);
Danke, es funktioniert im Zusammenhang mit der Einstellung der Transparenz, aber die Berührung Ereignisse scheinen seltsam zu funktionieren, ich kann scrollen, aber wenn ich auf ein Programm-Symbol klicke, scheint es einzufrieren (nicht ganz einzufrieren, aber die Programme nicht zu öffnen) – Alex
Irgendwelche anderen Ideen? Ich glaube nicht, dass eine transparente Aktivität oben ist Lösung – Alex
Wer bitte :)? – Alex
du auch versuchen, ca:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.max_bright);
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = 100/100.0f;
getWindow().setAttributes(lp);
}
Natürlich können Sie nicht verwenden können, ist dies Produktionscode, aber wenn man um spielen .. versuchen, diese Undocumented hack
Es verwendet:
private void setBrightness(int brightness) {
try {
IHardwareService hardware = IHardwareService.Stub.asInterface(
ServiceManager.getService("hardware"));
if (hardware != null) {
hardware.setScreenBacklight(brightness);
}
} catch (RemoteException doe) {
}
}
Denken Sie daran, dass sie diese Erlaubnis verwendet:
<uses-permission android:name="android.permission.HARDWARE_TEST"/>
Wo finde ich hardware09.jar? dafür [Tutorial (http://www.tutorialforandroid.com/2009/01/changing-screen-brightness.html) – noobProgrammer
tatsächlich dieser Link ist gebrochen ... – Device
eine Instanz Get von WindowManager.
WindowManager windowManager = (WindowManager) Class.forName("android.view.WindowManagerImpl").getMethod("getDefault", new Class[0]).invoke(null, new Object[0]);
erstellen xml Vollbild-Layout (Layout-Parameter eingestellt fill_parent
)
Legen Sie Ihre Ansicht nicht anklickbar, nicht fokussierbar, nicht lange klickbare, etc, so dass Tast durchgeben Ihre App und die App können es erkennen.
view.setFocusable(false);
view.setClickable(false);
view.setKeepScreenOn(false);
view.setLongClickable(false);
view.setFocusableInTouchMode(false);
Erstellen eines Layout-Parameter vom Typ android.view.WindowManager.LayoutParams
. LayoutParams layoutParams = new LayoutParams();
Set Layout Parameter wie Höhe, Breite usw.
layoutParams.height = LayoutParams.FILL_PARENT;
layoutParams.width = LayoutParams.FILL_PARENT;
layoutParams.flags = 280; // You can try LayoutParams.FLAG_FULLSCREEN too
layoutParams.format = PixelFormat.TRANSLUCENT; // You can try different formats
layoutParams.windowAnimations = android.R.style.Animation_Toast; // You can use only animations that the system to can access
layoutParams.type = LayoutParams.TYPE_SYSTEM_OVERLAY;
layoutParams.gravity = Gravity.BOTTOM;
layoutParams.x = 0;
layoutParams.y = 0;
layoutParams.verticalWeight = 1.0F;
layoutParams.horizontalWeight = 1.0F;
layoutParams.verticalMargin = 0.0F;
layoutParams.horizontalMargin = 0.0F;
Key Schritt: Sie können festlegen, wie viel Prozent der Helligkeit Sie benötigen. layoutParams.setBackgroundDrawable(getBackgroundDrawable(i));
private Drawable getBackgroundDrawable(int i) {
int j = 255 - (int) Math.round(255D * Math.exp(4D * ((double) i/100D) - 4D));
return new ColorDrawable(Color.argb(j, 0, 0, 0));}
Schließlich Blick auf WINDOW hinzufügen, die zuvor erstellt wurde.
windowManager.addView(view, layoutParams);
Hinweis: Sie benötigen SYSTEM_ALERT_WINDOW
Erlaubnis ein Overlay auf dem Bildschirm zu legen.
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
Habe das getestet und es funktioniert. Lass es mich wissen, wenn du nicht weiterkommst.
bitte können Sie eine vollständige Antwort auf diese [Frage] (http://stackoverflow.com/questions/22748031/create-a-simple-screen-filter) Die Verwendung von Beispielen wird sehr geschätzt – noobProgrammer
ich habe dasselbe Problem konfrontiert. Ich habe auch diese Frage http://stackoverflow.com/questions/2222146/control-screen-brightness-in-android-using-background-service gepostet. Ich konnte das Problem lösen. U kann die richtige Methode in der Post sehen. –
versuchen Sie diesen Link kann es Ihnen ein wenig helfen: http://android-er.blogspot.com/2011/02/change-android-screen-brightness.html –