2013-08-21 4 views
2

Я делаю приложение для Android, которое имеет управление масштабированием изображения с запуском & кнопки остановки. (Т.е.) У меня есть две кнопки с изображением. Когда я нажимаю кнопку запуска, изображение должно делать масштабирование анимации. когда я нажимаю кнопку «Стоп», он должен останавливать анимацию., и снова, если я нажму «start», он должен возобновить масштабирование из остановленной позиции. Как я могу это сделать? Ниже мой рабочий образец кода:Android Image масштабирование анимации

ImageView imageView; ScaleAnimation zoom; Animation animset; float gg;

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    zoom = new ScaleAnimation(0, 1, 0, 1); 
    zoom.setDuration(3000); 

    imageView = (ImageView) findViewById(R.id.imageView1); 
    imageView.startAnimation(zoom); 

    ((Button) findViewById(R.id.start)).setOnClickListener(this); 
    ((Button) findViewById(R.id.stop)).setOnClickListener(this); 

} 

@Override 
public void onClick(View v) { 
    switch (v.getId()) { 
    case R.id.start: 
     zoom.setDuration((long) gg); 
     zoom.start(); 

     break; 
    case R.id.stop: 
     gg = zoom.getDuration(); 
     break; 

    } 

} 

Спасибо.

ответ

4

попробовать этот

ZOOM IN АКТИВНОСТИ

public class ZoomInActivity extends Activity implements AnimationListener { 

    ImageView imgPoster; 
    Button btnStart; 

    // Animation 
    Animation animZoomIn; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_zoom_in); 

     imgPoster = (ImageView) findViewById(R.id.imgLogo); 
     btnStart = (Button) findViewById(R.id.btnStart); 

     // load the animation 
     animZoomIn = AnimationUtils.loadAnimation(getApplicationContext(), 
       R.anim.zoom_in); 

     // set animation listener 
     animZoomIn.setAnimationListener(this); 

     // button click event 
     btnStart.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // start the animation 
       imgPoster.startAnimation(animZoomIn); 
      } 
     }); 

    } 

    @Override 
    public void onAnimationEnd(Animation animation) { 
     // Take any action after completing the animation 

     // check for zoom in animation 
     if (animation == animZoomIn) {   
     } 

    } 

    @Override 
    public void onAnimationRepeat(Animation animation) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onAnimationStart(Animation animation) { 
     // TODO Auto-generated method stub 

    } 

} 


activity_zoom_in_XML: 


<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#000000" 
    android:gravity="center"> 

    <ImageView android:id="@+id/imgLogo" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/man_of_steel" 
     android:layout_centerInParent="true"/> 

    <Button android:id="@+id/btnStart" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Start Animation" 
     android:layout_marginTop="30dp" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="20dp"/> 

</RelativeLayout> 

папку Anim грим в разрешении и создать zoom_in.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fillAfter="true" > 

    <scale 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:duration="1000" 
     android:fromXScale="1" 
     android:fromYScale="1" 
     android:pivotX="50%" 
     android:pivotY="50%" 
     android:toXScale="3" 
     android:toYScale="3" > 
    </scale> 

</set> 
+1

Спасибо за ваш answer.Im ok.but мне нужно остановить и возобновить масштабирование на остановленный position.How я мог сделать это – sanjay

+0

как мы можем уменьшить изображение? –

+0

Спасибо за ваш ответ. Но после масштабирования, как уйти с изображения – rams

1

легко и просто

  • Создать Рез папку/anim
  • описания Put анимации в разрешении/Anim папку
  • Набор анимации для изображения, используя ниже код

    ImageView image=(ImageView)findViewById(R.id.imageId); 
    image.setAnimation(AnimationUtils.loadAnimation(this,R.anim.zoom_in_anim)); 
    
Смежные вопросы