2017-08-16 5 views
0

私はアンドロイドに新しく、現在カメラAPIを使用しているアプリで作業しています。私はアプリでズーム機能の実装に問題があります。私はアプリを作るためにカメラキットAPIを使用しており、カメラキットAPIはズームコントロールをサポートしていません。必要なコードを教えてください。私は1週間以来それを把握することができません。私はカメラのプレビューにズームを実装する必要があります。カメラにズームを加えるandroid

これは私のコードです。

public class MicroscopeAcitvity extends AppCompatActivity implements View.OnClickListener { 

    CameraView cameraView; 
    ImageButton cameraTakePic; 
    ImageButton buttonFlash; 
    Camera mCamera; //= Camera.open(); 
    Camera.Parameters params; 
    TextView T1,T2; 
    int counter = 0; 




    @Override 
    protected void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_microscope_acitvity); 

     cameraView = (CameraView) findViewById(R.id.camera); 

     cameraTakePic = (ImageButton) findViewById(R.id.button_take_picture); 
     cameraTakePic.setOnClickListener(this); 

     buttonFlash = (ImageButton) findViewById(R.id.button_Flash); 
     buttonFlash.setOnClickListener(this); 

     T1 = (TextView) findViewById(R.id.flash_text1); 
     T1.setOnClickListener(this); 
     //T1.setVisibility(View.GONE); 

     T2 = (TextView) findViewById(R.id.flash_text2); 
     T2.setOnClickListener(this); 
     //T2.setVisibility(View.GONE); 


     cameraView.setCameraListener(new CameraListener() { 


      @Override 
      public void onPictureTaken(byte[] picture) { 
       super.onPictureTaken(picture); 

       // Create a bitmap 
       Bitmap result = BitmapFactory.decodeByteArray(picture, 0, picture.length); 
      } 
     }); 



     cameraView.setFocus(CameraKit.Constants.FOCUS_TAP); 

    } 



    @Override 
    protected void onResume() { 
     super.onResume(); 
     cameraView.start(); 
    } 

    @Override 
    protected void onPause() { 
     cameraView.stop(); 
     super.onPause(); 
    } 


    @Override 
    public void onClick(View v) { 
     int id; 
     id = v.getId(); 

     if(id == R.id.button_take_picture){ 
      cameraView.captureImage(); 
     } 

     if(id == R.id.button_Flash){ 
      if(counter % 2 != 0){ 
       T1.setVisibility(View.VISIBLE); 
       T2.setVisibility(View.VISIBLE); 
       counter = counter+1; 
      } 
      else{ 
       T1.setVisibility(View.GONE); 
       T2.setVisibility(View.GONE); 
       counter = counter+1; 
      } 

     } 

     if(id == R.id.flash_text1){ 
      T1.setTextColor(Color.RED); 
      T2.setTextColor(Color.DKGRAY); 
      cameraView.setFlash(CameraKit.Constants.FLASH_ON); 
     } 

     if (id == R.id.flash_text2){ 
      T2.setTextColor(Color.RED); 
      T1.setTextColor(Color.DKGRAY); 
      cameraView.setFlash(CameraKit.Constants.FLASH_OFF); 
     } 


    } 
} 

答えて

0

あなたが実装する必要がピンチで拡大したい場合はScaleGestureDetector.SimpleOnScaleGestureListener

あなたは、単にカメラパラメータを変更する必要があり、ズームを設定するには

Camera.Parameters parameters = camera.getParameters(); 
    parameters.setZoom(zoomFactorValue); 
    camera.setParameters(parameters); 

あなたには、いくつかの時間を持っている場合のことができます。残りのコードを自分で作成するか、彼がどのようにして行ったかを調べる

http://opencamera.sourceforge.net/

彼はサーフェイスビューでピンチズームを使用します(しかし、彼のコードは効率的ではなく、実際には醜いですが、一部の点では非常に分かりません)

関連する問題