1
そんなに研究したところ、android.hardware.cameraを使ってピンチズームを実装する方法を見つけることができません。私はSeekBarを使用していますが、これは私が必要とするものではありません。 Android SKD> = 15で動作するサンプルをどこに見つけることができるかを知っている人は誰ですか?Androidでピンチズームを実装する方法は?
私のcameraFragmentでは、私はOnSeekBarChangeListener を使用していて、onProgressChangedメソッドでカメラのズームを設定しました。カメラにあなたのピンチズーム3.Adjust
seekbar.setOnSeekBarChangeListener(this);
.....
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
try {
Camera.Parameters params = camera.getParameters();
params.setZoom(progress);
currentZoomLevel = progress;
params.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
camera.setParameters(params);
//set zoom level value
try {
float ratio = ((float) params.getZoomRatios().get(progress))/100;
tvZoomLevel.setText(String.format("%.1fX", ratio));
} catch (Exception ex) {
Log.e(TAG, ex.getMessage());
}
} catch (Exception ex) {
Log.e(TAG, ex.getMessage());
}
}
Android 4.xで動作します。私が変更した唯一のもの:return(float)Math.sqrt(x * x + y * y); – Dylan
これをフラグメントでどのように実装するかは、View v = inflater.inflate(R.layout.fragment、container、false)を追加します。 v.setOnTouchListener(this); – Dylan
リスナーをview.viewに設定できます。view = inflater.inflate(R.layout.fragment_test、container、false); view.setOnTouchListener(新View.OnTouchListener(){ 公共ブールonTouch(ビューV、MotionEventイベント){ (event.getAction()== MotionEvent.ACTION_MOVE)であれば{// } リターン何かをしますtrue; } }); – QuokMoon