3
21
2013
1

Android闪光灯使用--手电筒

一般闪光灯都是很亮很亮的,所以能够在黑暗中为我们照明---手电筒。

以下是我学习如何操纵闪光灯以照明的例子。

1)添加权限:闪光灯是属于Camera部分的,要操作它需要添加权限。





<uses-permission android:name="android.permission.CAMERA" />

 

2)控制代码:





public class CameraLightTest1 extends Activity{
	private Camera c;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		this.setContentView(R.layout.camera_light_test1);
		
		//打开按钮
		Button onBtn = (Button)findViewById(R.id.lighton1);
		onBtn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
             if(c!=null) return;
				 c = Camera.open();//获取Camera
				Parameters params = c.getParameters();
				params.setFlashMode(Parameters.FLASH_MODE_TORCH);//点亮闪光灯
				c.setParameters(params);
				//c.release();//这里释放Camera的话就立马关闭闪光灯了。
			}
		});
		
		//关闭按钮
		Button offBtn = (Button)findViewById(R.id.lightoff1);
		offBtn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				if(c==null) return;
				Parameters params = c.getParameters();
				params.setFlashMode(Parameters.FLASH_MODE_OFF);//熄灭闪光灯
				c.setParameters(params);
				c.release();//释放Camera资源
				c = null;
			}
		});
	}
}

如上只是简单的打开和关闭闪光灯,起到了手电筒的作用,但该程序做为手电筒使用还需完善。

参考文章:

http://blog.csdn.net/zqiang_55/article/details/8159191

Category: Android | Tags: Android camera
3
19
2013
18

关于Android ListView无法触发ItemClick事件的问题

由于在ListView的item中加入了按钮导致了无法触发ListView的ItemClick事件,在网上搜罗了下,找到了原因和解决办法:

如果自定义的ListViewItem中有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView的Item能被选中的基础是它能获取Focus,也就是说我们可以通过将ListView中Item中包含的所有控件的focusable属性设置为false,这样的话ListView的Item自动获得了Focus的权限,也就可以被选中了,也就会响应onItemClickListener中的onItemClick()方法,然而将ListView的Item Layout的子控件focusable属性设置为false有点繁琐,其实还可以通过对Item Layout的根控件设置其android:descendantFocusability=”blocksDescendant”即可(子孙的Focus能力).

 

上面解决了如何让ItemClick事件生效,但是问题又来了,我尝试着给Item中的按钮添加事件监听,但是似乎没地方给它加监听呢,看来得在写篇文章探讨下了。

参考:

http://blog.sina.com.cn/s/blog_8401d40201011e3t.html

 

Category: Android | Tags: Android ListView
1
9
2013
0

[摘自网络]android升级adt和sdk之后无法识别SDK Location的一个解决方式

取自:http://blog.csdn.net/tedzyc/article/details/8439917

        我把android的adt和sdk从4.0升级到4.2,发现eclipse的android设置里面原来列出的各种api level的platform消失了,而且无法新建android工程。而且检查过了sdk和adt都是最新的。

        解决方式就是重新建一个工作区(workspace)。在eclipse的Windows > Preferences > General > Startup an Shutdown > Workspaces 里面,Remove掉以前的workspace,再重启eclispe(这会导致看不到以前的所以工程,建议在remove之前先到Package Explorer里面全选所有工程,然后导出为‘File System’,用于以后再导入)。

        重新进入eclipse之后,查看android的SDK Location,就应该可以识别了。如果还是不行,重命名你的SDK所在的目录,再到eclipse设置的Android类别里面把SDK Location指向重命名后的目录所在的路径,就能识别了。识别完成后把那个目录重命名回原来的,再到设置里面重新指定路径。

Category: Android | Tags: Eclipse Android

Host by is-Programmer.com | Power by Chito 1.3.3 beta | Theme: Aeros 2.0 by TheBuckmaker.com