質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Android Emulator

Android EmulatorはアンドロイドのOSで起動しているアンドロイドのデバイスの機能をシミュレートするソフトウェアです。Emulatorは開発者に複数の違う設定を持ったデバイスを必要とすることなくアプリケーションを開発しテストすることが可能になります。

Q&A

0回答

3164閲覧

AndroidStudioでカメラのオートフォーカスが上手くいきません

fumiya1998_310

総合スコア7

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Android Emulator

Android EmulatorはアンドロイドのOSで起動しているアンドロイドのデバイスの機能をシミュレートするソフトウェアです。Emulatorは開発者に複数の違う設定を持ったデバイスを必要とすることなくアプリケーションを開発しテストすることが可能になります。

0グッド

0クリップ

投稿2017/03/07 15:43

###前提・実現したいこと
AndroidStudioでカメラから取り込んだ映像を映し出すシステムを作っています。オートフォーカスを実装したのですが、カメラアプリを立ち上げて焦点を変えないまでは焦点が合っているのですが焦点を変えてしまうと上手く焦点が合いません(例えば、カメラが遠くを写している状態から近くを写した時に焦点が合わない)何か解決法がありましたらご伝授いただきたいです。

###該当のソースコード

java

1 2import java.util.Collections; 3public class MainActivity extends Activity { 4 private Camera mCamera; 5 private static final String TAG = "M Permission"; 6 private int REQUEST_CODE_CAMERA_PERMISSION = 0x01; 7 8 @Override 9 protected void onCreate(Bundle savedInstanceState) { 10 super.onCreate(savedInstanceState); 11 setContentView(R.layout.activity_main); 12 13 14 TextureView textureView = (TextureView) findViewById(R.id.texture_view); 15 textureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() { 16 @Override 17 public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) { 18 19 20 21 22 Button bt_red = (Button) findViewById(R.id.Red); 23 Button bt_green = (Button) findViewById(R.id.Green); 24 25 bt_red.setOnClickListener(new View.OnClickListener() { 26 @Override 27 public void onClick(View view) { 28 FrameLayout frameLayout = (FrameLayout) findViewById(R.id.aho); 29 frameLayout.setBackgroundColor(Color.argb(127,204,0,0)); 30 } 31 }); 32 33 bt_green.setOnClickListener(new View.OnClickListener(){ 34 35 @Override 36 public void onClick(View view) { 37 FrameLayout frameLayout = (FrameLayout) findViewById(R.id.aho); 38 frameLayout.setBackgroundColor(Color.argb(127,0,100,0)); 39 } 40 }); 41 42 43 44 mCamera.open(); 45 46 } 47 48 @Override 49 public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) { 50 } 51 52 @Override 53 public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) { 54 return false; 55 } 56 57 @Override 58 public void onSurfaceTextureUpdated(SurfaceTexture surface) { 59 } 60 }); 61 //setContentView(textureView); 62 mCamera = new Camera(textureView); 63 64 } 65 66 67 class Camera { 68 private CameraDevice mCamera; 69 private TextureView mTextureView; 70 private Size mCameraSize; 71 private CaptureRequest.Builder mPreviewBuilder; 72 private CameraCaptureSession mPreviewSession; 73 74 private CameraDevice.StateCallback mCameraDeviceCallback = new CameraDevice.StateCallback() { 75 @Override 76 public void onOpened(CameraDevice camera) { 77 mCamera = camera; 78 createCaptureSession(); 79 } 80 81 @Override 82 public void onDisconnected(CameraDevice camera) { 83 camera.close(); 84 mCamera = null; 85 } 86 87 @Override 88 public void onError(CameraDevice camera, int error) { 89 camera.close(); 90 mCamera = null; 91 } 92 }; 93 94 CameraCaptureSession.StateCallback mCameraCaptureSessionCallback = new CameraCaptureSession.StateCallback() { 95 @Override 96 public void onConfigured(CameraCaptureSession session) { 97 mPreviewSession = session; 98 updatePreview(); 99 } 100 101 @Override 102 public void onConfigureFailed(CameraCaptureSession session) { 103 Toast.makeText(MainActivity.this, "onConfigureFailed", Toast.LENGTH_LONG).show(); 104 } 105 }; 106 107 public Camera(TextureView textureView) { 108 mTextureView = textureView; 109 } 110 111 public void open() { 112 try { 113 CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE); 114 for (String cameraId : manager.getCameraIdList()) { 115 CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId); 116 if (characteristics.get(CameraCharacteristics.LENS_FACING) == CameraCharacteristics.LENS_FACING_BACK) { 117 StreamConfigurationMap map = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP); 118 mCameraSize = map.getOutputSizes(SurfaceTexture.class)[0]; 119 try { 120 manager.openCamera(cameraId, mCameraDeviceCallback, null); 121 }catch(SecurityException e){ 122 123 } 124 125 return; 126 } 127 } 128 } catch (CameraAccessException e) { 129 e.printStackTrace(); 130 } 131 } 132 133 private void createCaptureSession() { 134 if (!mTextureView.isAvailable()) { 135 return; 136 } 137 138 SurfaceTexture texture = mTextureView.getSurfaceTexture(); 139 texture.setDefaultBufferSize(mCameraSize.getWidth(), mCameraSize.getHeight()); 140 Surface surface = new Surface(texture); 141 try { 142 mPreviewBuilder = mCamera.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW); 143 } catch (CameraAccessException e) { 144 e.printStackTrace(); 145 } 146 147 mPreviewBuilder.addTarget(surface); 148 try { 149 mCamera.createCaptureSession(Collections.singletonList(surface), mCameraCaptureSessionCallback, null); 150 } catch (CameraAccessException e) { 151 e.printStackTrace(); 152 } 153 } 154 155 private void updatePreview() { 156 mPreviewBuilder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_VIDEO); 157 HandlerThread thread = new HandlerThread("CameraPreview"); 158 thread.start(); 159 Handler backgroundHandler = new Handler(thread.getLooper()); 160 try { 161 mPreviewSession.setRepeatingRequest(mPreviewBuilder.build(), null, backgroundHandler); 162 } catch (CameraAccessException e) { 163 e.printStackTrace(); 164 } 165 } 166 } 167 168 169} 170

###補足情報(言語/FW/ツール等のバージョンなど

Camera2クラスを使ってます。

端末はgalaxy note 3

apiレベルは21です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問