Исправить Альфа в Android - PullRequest
       29

Исправить Альфа в Android

0 голосов
/ 10 февраля 2012

Разрешено по коду.


Я создал простое приложение для Android, играющее с анимацией, есть альфа, traslate и rotate.

Это вид с тремя кнопками (по одной для каждой анимации). Когда я нажимаю на кнопку, она запускает анимацию и показывает красную кнопку, которая позволяет отменить ее.

Моя проблема в том, что когда я отменяю анимацию alha и запускаю другую, эта показывает прозрачность, как альфа-анимация, когда я закрываю ее.

Я использовал setalpha и другие коды для управления им, но я никогда не смогу его контролировать.

Большое спасибо.

Код класса

    public void onClick(View v) {
    close = (Button) findViewById(R.id.close);
    image = (ImageView) findViewById(R.id.View);
    image.setEnabled(true);

    switch (v.getId()) {

        case R.id.Alpha:
            animation = AnimationUtils.loadAnimation(this, R.anim.alpha);
            close.setVisibility(View.VISIBLE);
            close.setOnClickListener(this);
            close.setEnabled(true);
            break;

        case R.id.Rotate:
            animation = AnimationUtils.loadAnimation(this, R.anim.rotate);
            close.setVisibility(View.VISIBLE);
            close.setOnClickListener(this);
            close.setEnabled(true);
            break;

        case R.id.Traslate:
            animation = AnimationUtils.loadAnimation(this, R.anim.traslate);
            close.setVisibility(View.VISIBLE);
            close.setOnClickListener(this);
            close.setEnabled(true);
            break;

        case R.id.Close:    
            close.setVisibility(View.INVISIBLE);
            close.setEnabled(false);
            image.setEnabled(false);
            image.clearAnimation();
            break;
    }

    if (close.isEnabled()) {
        animation.reset();  
        image.setOnClickListener(this);
        image.clearAnimation();
        image.startAnimation(animation);
    }
}
}

Код альфа XML

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

<alpha
    android:fromAlpha="0.0"
    android:toAlpha="1.0"
    android:duration="3000"/>

<alpha
    android:startOffset="5000"
    android:fromAlpha="1.0"
    android:toAlpha="0.0"
    android:duration="3000"/>

</set>

Код поворота xml

<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">

<rotate
    android:fromDegrees="90"
    android:toDegrees="0"
    android:pivotX="-5%"
    android:pivotY="5%p"
    android:duration="3000" />

<rotate
    android:fromDegrees="0"
    android:toDegrees="90"
    android:pivotX="5%"
    android:pivotY="-5%p"
    android:duration="3000"
    android:startOffset="5000" />

</set>

Это не то, что я ожидал, но я исправил это, запустив новую альфа-анимацию с длительностью 1 от альфа 0 до 1.

...