2013-06-05 4 views
2

здесь является XML-файл:Как получить анимированное представление

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="150dp" 
android:layout_height="match_parent"> 

<Button 
    android:id="@+id/textview" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/hello_world" /> 

здесь ява код

private Button text; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    text = (Button)findViewById(R.id.textview); 
    text.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      text.startAnimation(getScaleAnimation()); 

     } 
    }); 
} 

    private ScaleAnimation getScaleAnimation(){ 
    ScaleAnimation animation = new ScaleAnimation(1f,1.2f,1f,1.2f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f); 
    animation.setDuration(1000); 
    animation.setFillAfter(true); 
    return animation; 
} 

Я выполняю простой ScaleAnimation на Button.Is есть ли способ Я могу получить анимированное представление?

+0

http://android-er.blogspot.in/2012/02/apply-animation-on-button.html – Sam

+0

Спасибо за ваш ответ! Мне очень жаль, что мой английский не понял, что я сказал. Я знаю, как используйте анимацию, которая применяется на представлении, чтобы представление могло быть анимировано независимо от того, что вы хотите. Но я хочу получить анимированное представление, к которому вы применяете анимацию раньше. Просите о моем английском! –

+0

Насколько мне известно, вы должны поддержать некоторую подробную информацию о том, что вы пытаетесь просить, чтобы дать понять. Может быть, включение изображения было бы хорошей идеей или просто примером cenario ... – boburShox

ответ

0

Используйте этот способ

Создание XML внутри /res/anim папку и поместить следующий код в него.

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="schemas.android.com/apk/res/android" 
       android:interpolator="@android:anim/linear_interpolator"> 

     <scale android:fromXScale="0.0" android:fromYScale="0.0" 
       android:toXScale="1.0" android:toYScale="1.0" 
       android:duration="700" android:fillBefore="false" /> 

</set> 

Поместите код ниже в файл Java:

Animation scaleAnimation 
      = AnimationUtils.loadAnimation(this, R.anim.logoanimation); 
Btn.startAnimation(scaleAnimation); 

logoanimation этого имя моего файл анимация XML.

более передать этот tutorial

+0

Спасибо за ваш ответ! Мне очень жаль, что мой английский не понял, что я сказал. Я знаю, как использовать анимацию, которая применяется на представлении, чтобы представление можно было анимировать независимо от того, что вы хотите. Но я хочу получить анимированное представление, которое вы применяете анимация раньше. Извините за мой английский! –

3

Просто откройте anim папку внутри папки res. Создайте файл xml. Затем вам нужно создать тег set. Внутри него вы можете создать тег scale.

Вот пример:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/accelerate_interpolator"> 

<scale 
    android:fromXScale="0.5" 
    android:toXScale="2" 
    android:fromYScale="0.5" 
    android:toYScale="2" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:duration="5000" 

    /> 

</set> 

Примечание: не забудьте включить xmlns:android декларацию.

Теперь, внутри метода onCreate или где угодно, просто поставьте следующее. Я анимировать (масштабирование) сама кнопка при щелчке:

Button but = (Button) findViewById(R.id.button1); 
    but.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Animation anim = AnimationUtils.loadAnimation(AnimationActivity.this, R.anim.animation); 
      but.startAnimation(anim); 
    } 
}); 

EDIT: в случае, если вы хотите, чтобы повернуть его в то время как масштабирование, вы можете поместить следующие внутри файла xml:

<rotate 
    android:fromDegrees="0" 
    android:toDegrees="360" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:duration="5000" 
    /> 

Надеюсь, это поможет.

+0

Спасибо за ваш ответ! Мне очень жаль, что мой английский не понял, что я сказал. Я знаю, как использовать анимацию, которая применяется на представлении, чтобы представление могло быть анимировано независимо от того, что вы хотите. Но я хочу получить анимированное представление, которое вы применяете анимация раньше. Извините за мой английский! –

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