我有相机布局。我需要它来处理flash图标。就像在普通的内置相机中一样,单击图标,图标和闪光模式更改。图标位于操作栏中。
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)){
}
}
});
我阅读了一些与此相关的帖子,但无法弄清楚该怎么做。请帮忙。提出这个问题的方式可能不太理想,所以请告诉我需要的其他代码或细节。
我正在使用表面视图,然后调用相机实例。
答案 0 :(得分:0)
为此你应该这样做:
检查闪光灯是否可用? 如果是,则关闭/打开 如果没有,那么你可以根据你的应用程序做任何事情。需求 检查设备中闪存的可用性:
您可以使用以下
context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
如果闪光灯可用则返回true,否则返回false。
有关详细信息,请参阅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);