Helligkeit Bildschirmfilter

Hat jemand eine Idee, wie man einen Brightness Screen Filter wie der hier zu implementieren:

Http://www.appbrain.com/app/screen-filter/com.haxor

  • Transparenter Teil des Bildes in ImageView wird schwarz
  • Wie installiere ich android Markt auf Emulator für alle api's
  • Fehler: Keine Ressource Bezeichner gefunden für Attribut 'adSize' im Paket 'com.google.example' main.xml
  • UserNotAuthenticatedException bei FingerprintManager.authenticate ()
  • Verwenden von benutzerdefinierten Schriftart in Android TextView mit xml
  • Java.lang.StackOverFlow Fehler. Verdacht auf zu viele Ansichten?
  • Ich brauche einen Ausgangspunkt und ich kann nicht herausfinden, wie es geht

  • Debugging sqlite Datenbank auf dem Gerät
  • Android Volley MalformedURLException Schlechte URL
  • So durchsuchen Sie die Methode in einer Datei in Android Studio
  • Eingehen in den Lebenszyklus von Fragment wie Application.ActivityLifecycleCallbacks
  • Was zu tun wann - java.io.FileNotFoundException: Kein Content-Anbieter?
  • Klonen von Android-Quellen auf einen lokalen Repository-Server
  • 4 Solutions collect form web for “Helligkeit Bildschirmfilter”

    Machen Sie einfach eine transparente Vollbild-Aktivität, die Berührungen durchlaufen lässt. Um Berührungen durchzuführen, verwenden Sie die folgenden Fenster-Flags, bevor Sie den Inhalt festlegen:

    @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 Sie einfach einen 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 ändern Sie die "Helligkeit" ändern Sie einfach den Wert der Hintergrundfarbe aus Ihrem Code irgendwo:

     findViewById(R.id.background).setBackgroundColor(0x66000000); 
    • Holen Sie sich eine Instanz von WindowManager.

      WindowManager windowManager = (WindowManager) Class.forName("android.view.WindowManagerImpl").getMethod("getDefault", new Class[0]).invoke(null, new Object[0]);

    • Erstellen Sie ein Vollbild-Layout xml (Layout-Parameter auf fill_parent )

    • Setzen Sie Ihre Ansicht als nicht anklickbar, nicht fokussierbar, nicht lange klickbar, etc, so dass die Berührung an Ihre App weitergegeben wird und die App es erkennen kann.

      view.setFocusable(false);
      view.setClickable(false);
      view.setKeepScreenOn(false);
      view.setLongClickable(false);
      view.setFocusableInTouchMode(false);

    • Erstellen Sie einen Layout-Parameter vom Typ android.view.WindowManager.LayoutParams . LayoutParams layoutParams = new LayoutParams();

    • Set Layout Parameter wie Höhe, Breite etc

       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; 
    • Schlüsselschritt: Sie können festlegen, welcher Prozentsatz 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 füge View View zu windowManager hinzu, den du früher erstellt hast.

      windowManager.addView(view, layoutParams);

    Hinweis: Sie benötigen die SYSTEM_ALERT_WINDOW , um eine Überlagerung auf dem Bildschirm zu legen.

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

    Hab das getestet und es funktioniert. Lassen Sie mich wissen, wenn Sie stecken bleiben.

    Natürlich kannst du das nicht benutzen, ist der Produktionscode, aber wenn du herumspielst, versuchst du diesen undokumentierten Hack

    Es benutzt :

     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 es diese Berechtigung verwendet:

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

    Du versuchst das auch:

     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); } 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.