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

  • Wie bekomme ich Datei Pfad der Datei aus internen Speicher in Android
  • Google Cloud Messaging-Register fehlschlägt
  • Wie man EditText Box-Höhe erweitert
  • Android: entfernen () Fragment -> add () neues Fragment der gleichen Klasse wieder -> onCreateView und onActivityCreated nicht aufgerufen?
  • Schwierigkeiten beim Upgrade der SQlite-Tabelle
  • Fragmentinhalt überlagert die Toolbar
  • Ich brauche einen Ausgangspunkt und ich kann nicht herausfinden, wie es geht

  • USB Webcam in Android
  • Welches Flag in SimpleCursorAdapter verwenden?
  • Öffnen Sie die URL im Webview - phonegap
  • AsyncTaskLoader läuft nicht
  • Probleme mit der Aktivitäts-Titelsprache
  • Sollte mein Android App standard zu vereinfachten oder traditionellen Chinesen?
  • 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.