【发布时间】:2016-02-03 15:25:03
【问题描述】:
我正在尝试制作一个简单的应用程序,它会在单击按钮时打开相机闪光灯,在另一次单击时它将关闭,以便我们可以将其用作手电筒。但是闪光灯没有打开。下面是我的flashfragment
public class FlashFragment extends Fragment {
private boolean isLighOn = false;
private Camera camera;
private Button button;
public FlashFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_flash, container, false);
button = (Button) rootView.findViewById(R.id.buttonFlashlight);
Context context = getActivity();
PackageManager pm = context.getPackageManager();
// if device support camera?
if (!pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
Log.e("err", "Device has no camera!");
}
try{
camera = Camera.open();
final Camera.Parameters p = camera.getParameters();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if (isLighOn) {
Log.i("info", "torch is turn off!");
p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.stopPreview();
isLighOn = false;
} else {
Log.i("info", "torch is turn on!");
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.startPreview();
isLighOn = true;
}
}
});
}catch(Exception e){
e.printStackTrace();
}
// Inflate the layout for this fragment
return rootView;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}
@Override
public void onDetach() {
super.onDetach();
}
}
【问题讨论】:
-
您是否为 AndroidManifest.xml 文件添加了必要的权限?
标签: android android-camera flashlight