Java代码:
package zhangphil.app; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.WindowManager; 
import android.widget.TextView; 
 
public class MainActivity extends Activity { 
    private float startY = 0;//手指按下时的Y坐标 
    private float startX = 0;//手指按下时的Y坐标 
 
    private TextView brightnessTextView; 
    private View mVideoView; 
 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        mVideoView = LayoutInflater.from(this).inflate(R.layout.activity_main, null); 
        setContentView(mVideoView); 
        brightnessTextView = (TextView) mVideoView.findViewById(R.id.text); 
    } 
 
 
    /* 
    * 设置屏幕亮度 
    * 0 最暗 
    * 1 最亮 
    */ 
    public void setBrightness(float brightness) { 
        WindowManager.LayoutParams lp = getWindow().getAttributes(); 
        lp.screenBrightness = lp.screenBrightness + brightness / 255.0f; 
        if (lp.screenBrightness > 1) { 
            lp.screenBrightness = 1; 
        } else if (lp.screenBrightness < 0.1) { 
            lp.screenBrightness = (float) 0.1; 
        } 
        getWindow().setAttributes(lp); 
 
        float sb = lp.screenBrightness; 
        brightnessTextView.setText((int) Math.ceil(sb * 100) + "%"); 
    } 
 
    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
        int screenWidth = mVideoView.getWidth(); 
 
        switch (event.getAction()) { 
            case MotionEvent.ACTION_DOWN: 
                startX = event.getX(); 
                startY = event.getY(); 
                break; 
 
            case MotionEvent.ACTION_MOVE: 
                float endY = event.getY(); 
                float distanceY = startY - endY; 
                if (startX > screenWidth / 2) { 
                    //右边 
                    //在这里处理音量 
                } else { 
                    //屏幕左半部分上滑,亮度变大,下滑,亮度变小 
 
                    final double FLING_MIN_DISTANCE = 0.5; 
                    final double FLING_MIN_VELOCITY = 0.5; 
                    if (distanceY > FLING_MIN_DISTANCE && Math.abs(distanceY) > FLING_MIN_VELOCITY) { 
                        setBrightness(10); 
                    } 
                    if (distanceY < FLING_MIN_DISTANCE && Math.abs(distanceY) > FLING_MIN_VELOCITY) { 
                        setBrightness(-10); 
                    } 
                } 
                break; 
        } 
 
        return super.onTouchEvent(event); 
    } 
}





activity_main.xml布局文件:


<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@mipmap/ic_launcher"> 
 
    <TextView 
        android:id="@+id/text" 
        android:layout_width="150dp" 
        android:layout_height="50dp" 
        android:layout_gravity="center" 
        android:background="@android:color/holo_orange_light" 
        android:gravity="center" 
        android:textColor="@android:color/white" /> 
</FrameLayout>



发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

Android SmartTabLayout worm蠕虫蠕动/普通平整动画切换动画属性详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。