我想要一个屏幕闪烁功能,即在我的项目中闪烁。我在stackoverflow Adding screen brightness controls to android application
中关注了此问题链接我在那里应用了fiXedd给出的代码。它工作我的意思是当一个状态是真的我闪烁和代码工作,但然后说状态是假的(即我想停止闪烁和恢复旧的亮度)然后我的整个屏幕变黑。然后我必须按回去退出应用程序。
什么是更好的方式来进行屏幕闪烁,然后根据条件停止它? 感谢。
答案 0 :(得分:0)
首先,您需要在某些变量闪烁前存储屏幕亮度 示例浮动
float oldBrightNess = Settings.System.getInt(getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS);
并在状态为false时将此值设置为窗口布局。
请参阅以下代码,它的工作方式完全相同。 如果屏幕没有闪烁,那么当您再次单击时,单击该按钮将闪烁,反之亦然
示例代码
public class RelativeLayoutTesting extends Activity implements OnClickListener {
Button button3;
boolean isPLAYING;
MediaPlayer mp;
boolean isFlashedBefore = false;
float oldBrightNess = 0;
float newBrightNess = 1.0f;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.sample);
button3 = (Button) findViewById(R.id.btn3);
button3.setOnClickListener(this);
try{
oldBrightNess = Settings.System.getInt(getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS);
}catch(Exception ex){
ex.printStackTrace();
oldBrightNess = 1.0f;
}
System.out.println("...Brighness..."+oldBrightNess);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
WindowManager.LayoutParams lp = getWindow().getAttributes();
if(!isFlashedBefore){
lp.screenBrightness = newBrightNess;
}else{
lp.screenBrightness = oldBrightNess;
}
getWindow().setAttributes(lp);
isFlashedBefore = !isFlashedBefore;
// emailWOAttach(RelativeLayoutTesting.this);
}
}