Android简单手电筒的应用可以设置不同的颜色

手电筒对于Android来说是极其常见的一个应用,常见的是通过摄像头发出光线进行照明,这里我们没有采取那样做而是通过采取通过界面Layout的一些方法来设置可拥有显示不同颜色。其整体的思路不是太难,首先我们应该在values建立一个color.xml文件来存储不同的颜色信息:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="white">#FFFFFF</color>
<color name="yellow">#FFD700</color>
<color name="red">#FF0000</color>
<color name="pink">#FF34B3</color>
<color name="black">#000000</color>
<color name="lightSkyBlue">#87CEFA</color>
</resources>

然后以下是我们的源码文件:

public class MainActivity extends Activity {
    /** Called when the activity is first created. */

	
	private LinearLayout mylayout;
	private Resources  mycolor;

	public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //改背layout背景颜色
        mylayout=(LinearLayout)findViewById(R.id.myline);
        //手电筒默认为白色的光    
        setColor(R.color.white);
        //这里默认最大亮度
        setBright(1.0f);
        

    }
	/*
	 * 选择设置背景颜色
	 * (non-Javadoc)
	 * @see android.app.Activity#onCreateOptionsMenu(android.view.Menu)
	 */
      	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		// TODO Auto-generated method stub
		menu.addSubMenu(0, Menu.FIRST,1, "选择背景颜色");
		menu.addSubMenu(0, Menu.FIRST+1,2,"调节背景亮度");
		menu.addSubMenu(0,Menu.FIRST+2,3, "关于");
		menu.addSubMenu(0,Menu.FIRST+3,4,"退出");
		return super.onCreateOptionsMenu(menu);
	}
	/*
	 * 选择处理
	 * (non-Javadoc)
	 * @see android.app.Activity#onMenuItemSelected(int, android.view.MenuItem)
	 */
	@Override
	public boolean onMenuItemSelected(int featureId, MenuItem item)
	{
		// TODO Auto-generated method stub
		switch (item.getItemId())
		{
		case Menu.FIRST:
			selectColor();
			break;
		case Menu.FIRST+1:
			selectBright();
			break;
		case Menu.FIRST+2:
			about();
		break;
		case Menu.FIRST+3:
			MainActivity.this.finish();
		break;
		default:
			break;
		}
		return super.onMenuItemSelected(featureId, item);
	}
	/*
	 * 选择背景颜色进行设置
	 */
	private void selectColor()
	{
		// 显示并且设置一些参数
		final String[] items = {"白色", "红色", "黑色","黄色","粉色","亮蓝色"};
		new AlertDialog.Builder(MainActivity.this).setTitle("请选择颜色").setItems(items,
				new DialogInterface.OnClickListener(){

					@Override
					public void onClick(DialogInterface dialog, int which)
					{
						// TODO Auto-generated method stub
						switch (which)
						{
						case 0:
							setColor(R.color.white);					
							break;
                        case 1:
                        	setColor(R.color.red);
                        	break;
                        case 2:
                        	setColor(R.color.black);
                        	break;
                        case 3:
                        	setColor(R.color.yellow);
                        	break;
                        case 4:
                        	setColor(R.color.pink);
                        	break;
                        case 5:
                        	setColor(R.color.lightSkyBlue);
                        	break;
						default:
							break;
						}
						
					}
			
		}).create().show();
		
		
	}
	/*
	 * 设置亮度
	 */
	private void selectBright()
	{
		final String[] items = {"100%", "75%", "50%","25%","10%"}; 
		new AlertDialog.Builder(MainActivity.this).setTitle("请选择亮度").setItems(items,
				new DialogInterface.OnClickListener(){

					@Override
					public void onClick(DialogInterface dialog, int which)
					{
						// TODO Auto-generated method stub
						switch (which)
						{
						case 0:
							setBright(1.0f);					
							break;
                        case 1:
                        	setBright(0.75f);
                        	break;
                        case 2:
                        	setBright(0.5f);
                        	break;
                        case 3:
                        	setBright(0.25f);
                        	break;
                        case 4:
                        	setBright(0.1f);
                        	break;

						default:
							break;
						}
						
					}
			
		}).create().show();

	}
	private void about()
	{
		new AlertDialog.Builder(MainActivity.this).setTitle("关于我们!!")
		.setMessage("ZY只为你做更实用的软件!\n邮箱:xxxx@163.com\n联系我们!!")
		.setPositiveButton("确定", new DialogInterface.OnClickListener()
		{
			
			@Override
			public void onClick(DialogInterface dialog, int which)
			{
				// TODO Auto-generated method stub
				
			}
		}).create().show();
		
	}
    /*
     * 设置背景颜色
     */
    private void setColor(int color)
    {
    	//得到资源的一个对象
    	mycolor=getBaseContext().getResources();
    	Drawable usecolor=mycolor.getDrawable(color);
    	//设置手电筒光的背景颜色
    	mylayout.setBackgroundDrawable(usecolor);
    	
    }
    /*
     * 设置亮度
     */
    private void setBright(float light)
    {
    	WindowManager.LayoutParams lp=getWindow().getAttributes();
    	lp.screenBrightness=light;
    	getWindow().setAttributes(lp);
    }
    
}

布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:id="@+id/myline"
 >
<TextView 
 android:layout_width="fill_parent" 
 android:layout_height="wrap_content" 
 android:text="@string/hello"
 android:textSize="30sp"
 android:textColor="@color/white"
 />
</LinearLayout>

整体来说,代码并不是太难,很容易理解,Menu和其中设置等一些操作需要我们注意!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值