使用SeekBar组件调节屏幕亮度
生活随笔
收集整理的這篇文章主要介紹了
使用SeekBar组件调节屏幕亮度
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Android手機里也可以通過程序進行屏幕亮度的調節,而這種操作往往就是通過SeekBar組件實現的,而要想實現亮度調節功能就必須android.view.Window類的screenBrightness屬性實現,而此屬性的取值范圍是0~1
(由暗到亮)
.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ? ? xmlns:tools="http://schemas.android.com/tools" ? ? android:layout_width="match_parent" ? ? android:layout_height="match_parent" ? ? android:orientation="vertical" ? ? tools:context=".MainActivity" > ? ? <SeekBar? ? ? ? ? android:id="@+id/seekbar" ? ? ? ? android:layout_width="fill_parent" ? ? ? ? android:layout_height="wrap_content"/> ? ?? ? ? <ImageView? ? ? ? ? android:id="@+id/img" ? ? ? ? android:layout_width="wrap_content" ? ? ? ? android:layout_height="wrap_content" ? ? ? ? android:src="@drawable/android_book"/> ? ? <TextView? ? ? ? ? android:id="@+id/light" ? ? ? ? android:layout_width="fill_parent" ? ? ? ? android:layout_height="wrap_content"/>
</LinearLayout>
.java
package com.example.seekbardemo3adjustthelight;
import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.Window; import android.view.WindowManager; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView;
public class MainActivity extends Activity { private SeekBar seekbar=null; private TextView light=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.light=(TextView) super.findViewById(R.id.light); this.seekbar=(SeekBar) super.findViewById(R.id.seekbar); this.seekbar.setMax(100); this.seekbar.setOnSeekBarChangeListener(new SeekBarChangeListenerImp()); }
public class SeekBarChangeListenerImp implements OnSeekBarChangeListener{
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // TODO Auto-generated method stub int cur=seekBar.getProgress(); MainActivity.this.setScreenBrightness(cur/100); MainActivity.this.light.setText("當前屏幕亮度:"+cur/100); }
public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub }
public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } } //設置屏幕亮度的函數 private void setScreenBrightness(float num){ WindowManager.LayoutParams layoutParams=super.getWindow().getAttributes(); layoutParams.screenBrightness=num;//設置屏幕的亮度 super.getWindow().setAttributes(layoutParams); } }
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ? ? xmlns:tools="http://schemas.android.com/tools" ? ? android:layout_width="match_parent" ? ? android:layout_height="match_parent" ? ? android:orientation="vertical" ? ? tools:context=".MainActivity" > ? ? <SeekBar? ? ? ? ? android:id="@+id/seekbar" ? ? ? ? android:layout_width="fill_parent" ? ? ? ? android:layout_height="wrap_content"/> ? ?? ? ? <ImageView? ? ? ? ? android:id="@+id/img" ? ? ? ? android:layout_width="wrap_content" ? ? ? ? android:layout_height="wrap_content" ? ? ? ? android:src="@drawable/android_book"/> ? ? <TextView? ? ? ? ? android:id="@+id/light" ? ? ? ? android:layout_width="fill_parent" ? ? ? ? android:layout_height="wrap_content"/>
</LinearLayout>
.java
package com.example.seekbardemo3adjustthelight;
import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.Window; import android.view.WindowManager; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView;
public class MainActivity extends Activity { private SeekBar seekbar=null; private TextView light=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.light=(TextView) super.findViewById(R.id.light); this.seekbar=(SeekBar) super.findViewById(R.id.seekbar); this.seekbar.setMax(100); this.seekbar.setOnSeekBarChangeListener(new SeekBarChangeListenerImp()); }
public class SeekBarChangeListenerImp implements OnSeekBarChangeListener{
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // TODO Auto-generated method stub int cur=seekBar.getProgress(); MainActivity.this.setScreenBrightness(cur/100); MainActivity.this.light.setText("當前屏幕亮度:"+cur/100); }
public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub }
public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } } //設置屏幕亮度的函數 private void setScreenBrightness(float num){ WindowManager.LayoutParams layoutParams=super.getWindow().getAttributes(); layoutParams.screenBrightness=num;//設置屏幕的亮度 super.getWindow().setAttributes(layoutParams); } }
總結
以上是生活随笔為你收集整理的使用SeekBar组件调节屏幕亮度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android当中layer-list使
- 下一篇: 监听edittext中文字个数变化··