Java tutorial
//package com.java2s; /* * Copyright (C) 2014 ZXing authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import android.hardware.Camera; import android.util.Log; import java.util.Arrays; import java.util.Collection; import java.util.List; public class Main { private static final String TAG = "CameraConfUtils"; /** * Sets the camera focus mode to infinity * @param parameters parameters of a camera */ protected static void setFocus(Camera.Parameters parameters) { List<String> supportedFocusModes = parameters.getSupportedFocusModes(); String focusMode = findSettableValue("focus mode", supportedFocusModes, parameters.FOCUS_MODE_INFINITY); if (focusMode != null) { parameters.setFocusMode(focusMode); } Log.i(TAG, "Focus mode already set to " + focusMode); } /** * Finds the best possible value out of the list of supported values * @param name name of the desired mode the values are searched for * @param supportedValues the supported values * @param desiredValues the desired values with descending priority * @return the best possible value */ private static String findSettableValue(String name, Collection<String> supportedValues, String... desiredValues) { Log.i(TAG, "Requesting " + name + " value from among: " + Arrays.toString(desiredValues)); Log.i(TAG, "Supported " + name + " values: " + supportedValues); if (supportedValues != null) { for (String desiredValue : desiredValues) { if (supportedValues.contains(desiredValue)) { Log.i(TAG, "Can set " + name + " to: " + desiredValue); return desiredValue; } } } Log.i(TAG, "No supported values match"); return null; } }