AndroidStudioカメラアプリを作ろうと思っているのですがError:(35, 68)
① エラー: シンボルを見つけられません
シンボル: 変数 container
場所: クラス id
②Error:(41, 36) エラー: シンボルを見つけられません
シンボル: 変数 menu
場所: クラス R
③Error:(48, 23) エラー: シンボルを見つけられません
シンボル: 変数 action_settings
場所: クラス id
④Error:(168, 50) エラー: シンボルを見つけられません
シンボル: 変数 fragment_main
場所: クラス layout
などのエラーが出ます この場合はそのシンボルを作っていないからでしょうか?最近始めたばかりでまだまだ初心者なので作り方など参考サイトなど教えてもらえれば助かります。回答よろしくお願いします。
java
1package gggggggggg.p; 2 3import java.io.FileOutputStream; 4 5import android.support.v7.app.ActionBarActivity; 6import android.support.v7.app.ActionBar; 7import android.support.v4.app.Fragment; 8import android.app.ActionBar.LayoutParams; 9import android.hardware.Camera; 10import android.hardware.Camera.Size; 11import android.os.Bundle; 12import android.os.Environment; 13import android.util.Log; 14import android.view.LayoutInflater; 15import android.view.Menu; 16import android.view.MenuItem; 17import android.view.MotionEvent; 18import android.view.SurfaceHolder; 19import android.view.SurfaceView; 20import android.view.View; 21import android.view.View.OnTouchListener; 22import android.view.ViewGroup; 23import android.view.ViewTreeObserver.OnGlobalLayoutListener; 24import android.os.Build; 25 26public class MainActivity extends ActionBarActivity { 27 final static private String TAG = "screen2camera"; 28 29 @Override 30 protected void onCreate(Bundle savedInstanceState) { 31 super.onCreate(savedInstanceState); 32 setContentView(R.layout.activity_main); 33 34 if (savedInstanceState == null) { 35 getSupportFragmentManager().beginTransaction().add(R.id.container, new CameraFragment()).commit(); 36 } 37 } 38 39 @Override 40 public boolean onCreateOptionsMenu(Menu menu) { 41 getMenuInflater().inflate(R.menu.main, menu); 42 return true; 43 } 44 45 @Override 46 public boolean onOptionsItemSelected(MenuItem item) { 47 int id = item.getItemId(); 48 if (id == R.id.action_settings) { 49 return true; 50 } 51 return super.onOptionsItemSelected(item); 52 } 53 54 55 /** 56 * カメラ撮影用フラグメント 57 */ 58 public static class CameraFragment extends Fragment { 59 60 // ------------------------------------------------------------ 61 // メンバー変数 62 // ------------------------------------------------------------ 63 private Camera camera_; // カメラインスタンス 64 View rootView_; // ルートView 65 SurfaceView surfaceView_; // プレビュー用SurfaceView 66 67 // ------------------------------------------------------------ 68 // リスナー 69 // ------------------------------------------------------------ 70 71 // Surfaceリスナー 72 private SurfaceHolder.Callback surfaceListener_ = new SurfaceHolder.Callback() { 73 // Surface作成 74 public void surfaceCreated(SurfaceHolder holder) { 75 // カメラインスタンスを取得 76 camera_ = Camera.open(); 77 try { 78 camera_.setPreviewDisplay(holder); 79 } catch (Exception e) { 80 e.printStackTrace(); 81 } 82 } 83 84 // Surface破棄時 85 public void surfaceDestroyed(SurfaceHolder holder) { 86 // カメラインスタンス開放 87 camera_.release(); 88 camera_ = null; 89 } 90 91 // Surface変更時 92 // プレビューのパラメーターを設定し、プレビューを開始する 93 public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { 94 Log.d(TAG, "surfaceChanged width:" + width + " height:" + height); 95 96 Camera.Parameters parameters = camera_.getParameters(); 97 98 // デバッグ用表示 99 Size size = parameters.getPictureSize(); 100 Log.d(TAG, "getPictureSize width:" + size.width + " size.height:" + size.height); 101 size = parameters.getPreviewSize(); 102 Log.d(TAG, "getPreviewSize width:" + size.width + " size.height:" + size.height); 103 104 // プレビューのサイズを変更 105 // parameters.setPreviewSize(width, height); // 画面サイズに合わせて変更しようとしたが失敗する 106 parameters.setPreviewSize(640, 480); // 使用できるサイズはカメラごとに決まっている 107 108 // パラメーターセット 109 camera_.setParameters(parameters); 110 // プレビュー開始 111 camera_.startPreview(); 112 } 113 }; 114 115 // シャッターが押されたときに呼ばれるコールバック 116 private Camera.ShutterCallback shutterListener_ = new Camera.ShutterCallback() { 117 public void onShutter() { 118 } 119 }; 120 121 // JPEGイメージ生成後に呼ばれるコールバック 122 private Camera.PictureCallback pictureListener_ = new Camera.PictureCallback() { 123 // データ生成完了 124 public void onPictureTaken(byte[] data, Camera camera) { 125 // SDカードにJPEGデータを保存する 126 if (data != null) { 127 FileOutputStream fos = null; 128 try { 129 fos = new FileOutputStream(Environment.getExternalStorageDirectory().getPath()+ "/camera_test.jpg"); 130 fos.write(data); 131 fos.close(); 132 } catch (Exception e) { 133 e.printStackTrace(); 134 } 135 136 // プレビューを再開する 137 camera.startPreview(); 138 } 139 } 140 }; 141 142 // 画面タッチ時のコールバック 143 OnTouchListener ontouchListener_ = new OnTouchListener() { 144 @Override 145 public boolean onTouch(View v, MotionEvent event) { 146 if (event.getAction() == MotionEvent.ACTION_DOWN) { 147 if (camera_ != null) { 148 // 撮影実行 149 camera_.takePicture(shutterListener_, null, pictureListener_); 150 } 151 } 152 return false; 153 } 154 }; 155 156 // ------------------------------------------------------------ 157 // Fragment 158 // ------------------------------------------------------------ 159 160 // Fragmentコンストラクタ 161 public CameraFragment() { 162 } 163 164 // View作成 165 @Override 166 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 167 // View作成 168 rootView_ = inflater.inflate(R.layout.fragment_main, container, false); 169 170 // View内のView取得 171 surfaceView_ = (SurfaceView) rootView_ .findViewById(R.id.surface_view); 172 173 // SurfaceHolder設定 174 SurfaceHolder holder = surfaceView_.getHolder(); 175 holder.addCallback(surfaceListener_); 176 holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 177 178 // タッチリスナー設定 179 rootView_.setOnTouchListener(ontouchListener_); 180 181 return rootView_; 182 } 183 } 184 185}
回答1件
あなたの回答
tips
プレビュー