`
20386053
  • 浏览: 430542 次
文章分类
社区版块
存档分类
最新评论

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和其中设置等一些操作需要我们注意!

分享到:
评论

相关推荐

    看代码学Android开发系列:Android手电筒源代码

    Android手电筒源代码介绍:适合刚学的实例1.菜单应用2.弹出框应用3.touch触发事件4.更改屏幕颜色5.更改屏幕亮度6.mvc开发模式7.全屏模式设置

    Google Android SDK开发范例大全(完整版)

    您将进行一个微小的修改,使屏幕背景全部变为白色,以便把手机用作手电筒。这个例子不是很有创意,但是可以作为一个有用的例子。请 下载 完整的源代码。 为了在 Eclipse 中创建应用程序,选择 File &gt; New &gt; Android...

    Google Android SDK开发范例大全(第3版) 1/5

    创意程序设计:即时动态桌面、电蚊香、转转轮盘、任务管理器、中英发音字典、手机手电筒、GPS轨迹记录器、女性贴身计时、QR Code二维条码生成器、手机OR Code扫描仪、热量骰子、掷杯筊、正妹墙相簿浏览器、You Tube...

    《Google Android SDK开发范例大全(第3版)》.pdf

    10.1 手机手电筒 692 10.2 gps轨迹记录器 696 10.3 女性贴身看护 704 10.4 手机qr code二维条形码生成器 714 10.5 android qr code二维条形码扫描仪 718 10.6 上班族今天中午要吃什么 726 10.7 ...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    10.1 手机手电筒——PowerManager控制WakeLock并改变手机亮度 10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二维...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    10.1 手机手电筒——PowerManager控制WakeLock并改变手机亮度 10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二维...

    Google Android SDK开发范例大全(第3版) 4/5

    创意程序设计:即时动态桌面、电蚊香、转转轮盘、任务管理器、中英发音字典、手机手电筒、GPS轨迹记录器、女性贴身计时、QR Code二维条码生成器、手机OR Code扫描仪、热量骰子、掷杯筊、正妹墙相簿浏览器、You Tube...

    Google Android SDK开发范例大全(第3版) 3/5

    创意程序设计:即时动态桌面、电蚊香、转转轮盘、任务管理器、中英发音字典、手机手电筒、GPS轨迹记录器、女性贴身计时、QR Code二维条码生成器、手机OR Code扫描仪、热量骰子、掷杯筊、正妹墙相簿浏览器、You Tube...

    Google Android SDK开发范例大全(第3版) 5/5

    创意程序设计:即时动态桌面、电蚊香、转转轮盘、任务管理器、中英发音字典、手机手电筒、GPS轨迹记录器、女性贴身计时、QR Code二维条码生成器、手机OR Code扫描仪、热量骰子、掷杯筊、正妹墙相簿浏览器、You Tube...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    10.1 手机手电筒——PowerManager控制WakeLock并改变手机亮度 10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二维...

    Google Android SDK开发范例大全的目录

    10.1 手机手电筒——PowerManager控制WakeLock并改变手机亮度 10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二维...

    Google Android SDK开发范例大全(第3版)part2

     10.1 手机手电筒  10.2 GPS轨迹记录器  10.3 女性贴身看护  10.4 手机QR Code二维条形码生成器  10.5 Android QR Code二维条形码扫描仪  10.6 上班族今天中午要吃什么  10.7 掷杯筊  10.8 电蚊香 ...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    10.1 手机手电筒——PowerManager控制WakeLock并改变手机亮度 10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二...

    Google Android SDK 开发范例大全01

    10.1 手机手电筒——PowerManager控制WakeLock并改变手机亮度 10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二维...

    Google Android SDK 开发范例大全02

    10.1 手机手电筒——PowerManager控制WakeLock并改变手机亮度 10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二维...

    Google+Android+SDK开发范例大全

    创意Android程序设计 10.1 手机手电筒——PowerManager控制WakeLock并改变手机亮度 10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker ...

    Google Android sdk 开发范例大全 部分章节代码

    10.1 手机手电筒——PowerManager控制WakeLock并改变手机亮度 10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二维...

Global site tag (gtag.js) - Google Analytics