2015-10-08 9 views
0

Мне просто нужна ваша помощь о том, как мы можем перемещать наши изображения, когда после его увеличения. Я сделал все остальное, но только столкнулся с проблемой перемещения движущихся изображений во время масштабирования и возврата к их нормальному размеру? Пожалуйста, помогите мне вот мой код;Как перемещать изображение после масштабирования в android

MainActivity.java

package com.example.saeed.zooming; 

import android.app.Activity; 
import android.content.Intent; 
import android.content.IntentFilter; 

import android.graphics.Bitmap; 
import android.graphics.Matrix; 

import android.os.BatteryManager; 
import android.os.Bundle; 

import android.view.Menu; 
import android.view.MenuItem; 
import android.view.MotionEvent; 
import android.view.ScaleGestureDetector; 
import android.view.SurfaceHolder; 
import android.view.SurfaceView; 
import android.view.View; 

import android.widget.ArrayAdapter; 
import android.widget.ImageView; 
import android.widget.TextView; 
import android.widget.Toast; 

import java.util.ArrayList; 
import java.util.Set; 

public class MainActivity extends Activity { 
    private ImageView iv; 
    private Matrix matrix = new Matrix(); 
    private float scale = 1f; 
    private ScaleGestureDetector SGD; 

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

     iv=(ImageView)findViewById(R.id.imageView); 
     SGD = new ScaleGestureDetector(this,new ScaleListener()); 
    } 

    public boolean onTouchEvent(MotionEvent ev) { 
     SGD.onTouchEvent(ev); 
     return true; 
    } 

    private class ScaleListener extends ScaleGestureDetector. 

      SimpleOnScaleGestureListener { 
     @Override 
     public boolean onScale(ScaleGestureDetector detector) { 
      scale *= detector.getScaleFactor(); 
      scale = Math.max(0.1f, Math.min(scale, 5.0f)); 

      matrix.setScale(scale, scale); 
      iv.setImageMatrix(matrix); 
      return true; 
     } 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 

     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
} 
+0

Вы хотите переместить изображение как кнопку с плавающей ?? это может помочь вам http://stackoverflow.com/a/4946893 – Sree

+0

Noop Мне нужно перемещать изображения только тогда, когда мы выполняем масштабирование на пальце. –

+0

вы хотите использовать эффект масштабирования или перемещать изображение после масштабирования? – Sree

ответ

0

Пожалуйста, попробуйте MultiTouchLibrary. Он будет выполнять ваши потребности Эта библиотека предоставит вам ниже функциональности

  1. Поворот
  2. Scale Image (Pinch для увеличения)
  3. Move
+0

Я проверю и попробую –

+0

Вы получили ответ? –

+0

Не работает, что я могу сделать сейчас? –

Смежные вопросы