Primero que nada Hola a todos, soy nuevo en este foro y tengo muchas dudas que espero me puedan ayudar a resolver.
Hace una semana empece atrabajar con android studio ya que donde estoy realizando mi practica e pidieron crear una aplicación de android en la cual al seleccionar un tipo bus se pueda ver mediante una imagen su recorrido por la ciudad, e logrado crear la opción y hacer que al seleccionar el bus pueda verse la imagen, le e colocado un zoom controls pero el problema que tengo es que al tratar de agrandar la imagen esta aumenta su tamaño pero el programa deja de responde, lo mismo pasa al disminuirla. La idea era que la imagen pueda ser agrandada y pueda desplazarse para seguir el recorrido del bus por la ciudad y también que pueda achicarse en caso de agrandar demasiado la imagen.
si alguien puede darme alguna idea de que implementar para lograr esto estaría muya agradecido.
Dejo acá el código que llevo para que puedan revisar en que estoy fallando:
`package ejemplo.myapplication;
import android.graphics.Bitmap;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.Spinner;
import android.widget.Toast;
import android.widget.ZoomControls;
public class MainActivity extends AppCompatActivity {
private ImageView fondo;
Spinner lista;
String[] datos = {"Bus", "A", "B", "C"};
ImageView imageView;
ZoomControls zoomControls;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fondo=(ImageView)findViewById(R.id.fondo);
lista = (Spinner) findViewById(R.id.lista1);
ArrayAdapter<String> adaptador = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, datos);
lista.setAdapter(adaptador);
zoomControls=(ZoomControls)findViewById(R.id.zoomControls);
zoomControls.setOnZoomInClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
float x = fondo.getScaleX();
float y = fondo.getScaleY();
fondo.setScaleX(x + 1);
fondo.setScaleY(y + 1);
}
});
zoomControls.setOnZoomOutClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
float x = fondo.getScaleX();
float y = fondo.getScaleY();
fondo.setScaleX(x - 1);
fondo.setScaleY(y - 1);
}
});
lista.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int i, long l) {
switch (i){
case 1:
fondo.setImageResource(R.drawable.colegio1);
break;
case 2:
fondo.setImageResource(R.drawable.colegio2);
break;
case 3:
fondo.setImageResource(R.drawable.colegio3);
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
`