我有一个相机布局。我需要它来处理闪光灯图标。就像在普通的内置相机中一样,您单击图标,图标和闪光灯模式会发生变化。图标位于操作栏中。
final ImageView flashicon=(ImageView)view.findViewById(R.id.flash_actionbar);
flashicon.setOnClickListener(new View.OnClickListener() {
Drawable cameraflashautoicon=getResources().getDrawable(R.drawable.cameraflashauto);
@Override
public void onClick(View v) {
if(flashicon.getDrawable().getConstantState().equals(R.drawable.cameraflashauto)){
flashicon.setImageDrawable(cameraflashautoicon);
}
if(flashicon.getDrawable().getConstantState().equals(R.drawable.cameraflashoff)){
}
if(flashicon.getDrawable().getConstantState().equals(R.drawable.cameraflashon)){
}
}
});
我读了一些与此相关的帖子,但不知道如何做。请帮忙。提出这个问题的方式可能并不理想,所以请让我知道还需要哪些其他代码或细节。
我正在使用表面视图,然后调用相机实例。
为此,您应该执行以下操作:
检查是否有闪光灯可用? 如果是,则关闭/打开 如果没有,那么您可以根据您的应用程序需求做任何事情。 要检查设备中闪存的可用性:
您可以使用以下内容
context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
如果闪光灯可用,则返回真,如果没有,则返回假。
有关详细信息,请参阅 http://developer.android.com/reference/android/content/pm/PackageManager.html。
然后使用以下代码进行闪光处理
CameraManager camManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String cameraId = camManager.getCameraIdList()[0]; // Usually front camera is at 0 position.
camManager.setTorchMode(cameraId, true(;