以编程方式处理相机闪光灯



我有一个相机布局。我需要它来处理闪光灯图标。就像在普通的内置相机中一样,您单击图标,图标和闪光灯模式会发生变化。图标位于操作栏中。

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(;

相关内容

  • 没有找到相关文章

最新更新