2014-09-03 4 views
0

Я пытаюсь сделать кнопку ссылки на ImageView, она работает, но без масштабирования, до этого она работала с масштабированием, только если это было, когда вы запускали ее через свой мобильный когда он без кнопки ссылки, у меня есть код, и это неправильно! Кто-нибудь имеет то же самое, что и https://play.google.com/store/apps/details?id=uk.co.senab.photoview.sample в eclipse?Ссылка на ссылку на ImageView с масштабированием

Edit:

mapslocations.xml

<Button 
      android:id="@+id/pslook1" 
      android:layout_width="fill_parent" 
      android:layout_height="45dp" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentTop="true" 
      android:layout_weight="1" 
      android:gravity="center" 
      android:text="Map" 
      android:textSize="10sp" 
      android:textStyle="italic" /> 

Sites.java

package com.f.fa; 

import android.annotation.SuppressLint; 
import android.app.Activity; 
import android.graphics.Matrix; 
import android.graphics.PointF; 
import android.os.Bundle; 
import android.util.FloatMath; 
import android.view.MotionEvent; 
import android.view.View; 
import android.widget.ImageView; 

public class Sites extends Activity { 
ImageView imageDetail1; 
Matrix matrix = new Matrix(); 
Matrix savedMatrix = new Matrix(); 
PointF startPoint = new PointF(); 
PointF midPoint = new PointF(); 
float oldDist = 1f; 
static final int NONE = 0; 
static final int DRAG = 1; 
static final int ZOOM = 2; 
int mode = NONE; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.mapslocations); 
    imageDetail1 = (ImageView) findViewById(R.id.pslook1); 
    /** 
    * set on touch listner on image 
    */ 
    imageDetail1.setOnTouchListener(new View.OnTouchListener() { 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 

    ImageView view = (ImageView) v; 
    System.out.println("matrix=" + savedMatrix.toString()); 
    switch (event.getAction() & MotionEvent.ACTION_MASK) { 
    case MotionEvent.ACTION_DOWN: 

    savedMatrix.set(matrix); 
    startPoint.set(event.getX(), event.getY()); 
    mode = DRAG; 
    break; 

    case MotionEvent.ACTION_POINTER_DOWN: 

    oldDist = spacing(event); 

    if (oldDist > 10f) { 
     savedMatrix.set(matrix); 
     midPoint(midPoint, event); 
     mode = ZOOM; 
    } 
    break; 

    case MotionEvent.ACTION_UP: 

    case MotionEvent.ACTION_POINTER_UP: 
    mode = NONE; 

    break; 

    case MotionEvent.ACTION_MOVE: 
    if (mode == DRAG) { 
     matrix.set(savedMatrix); 
     matrix.postTranslate(event.getX() - startPoint.x, 
     event.getY() - startPoint.y); 
    } else if (mode == ZOOM) { 
     float newDist = spacing(event); 
     if (newDist > 10f) { 
     matrix.set(savedMatrix); 
     float scale = newDist/oldDist; 
     matrix.postScale(scale, scale, midPoint.x, midPoint.y); 
     } 
    } 
    break; 

    } 
    view.setImageMatrix(matrix); 

    return true; 
    } 

    @SuppressLint("FloatMath") 
    private float spacing(MotionEvent event) { 
    float x = event.getX(0) - event.getX(1); 
    float y = event.getY(0) - event.getY(1); 
    return FloatMath.sqrt(x * x + y * y); 
    } 
    private void midPoint(PointF point, MotionEvent event) { 
    float x = event.getX(0) + event.getX(1); 
    float y = event.getY(0) + event.getY(1); 
    point.set(x/2, y/2); 
    } 
    }); 
} 
} 

imageview1.xml

<ImageView 
    android:id="@+id/pslook1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:scaleType="matrix" 
    android:src="@drawable/powerstationwallmap" /> 

PagePowerstation.java

package com.f.fa; 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.Button; 

public class PagePowerstation extends Activity { 

    Button imageview1; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.imageview1); 
    } 
} 

ответ

0

Я думаю, что вы используете код от Here. Вместо всех сумасшедших вещей на ваших сайтах. Java почему бы вам не использовать код для изменения макетов. Он имеет официальную документацию here. Пожалуйста, просмотрите все материалы, находящиеся внутри этой документации, и, если проблема не исчезнет, ​​скажите мне, чтобы я отредактировал это, чтобы изменить код для изменения макета.

+0

Эти два не помогают :) один из них находится на «Android Studio» – Sako

+0

Первый, есть прочь запустить его на затмение? – Sako

+0

Я дам вам код для этого в ближайшие несколько минут. – Aditya

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