27 กันยายน 2555

[Android Code] สร้างการเคลื่อนไหวง่ายๆ ด้วยคลาส AlphaAnimation


        ประกาศ - บทความนี้เก่าแล้วนะครับ แนะนำให้ใช้ ObjectAnimator จากบทความนี้แทนครับ ^^ [Android Code] มาทำความรู้จักกับ Object Animator กันดีกว่า~!

        ภาคต่อจากบทความเมื่อวานที่เกริ่นเรื่อง Animation กันไปแล้ว แต่คราวนี้เป็นการเรียกใช้คลาส AlphaAnimation กันบ้าง ซึ่งคลาสนี้ก็มีไว้สำหรับการควบคุม Alpha โดยเฉพาะ

        มีแค่นั้นแหละสำหรับคลาสนี้ (น้อยกว่าคลาส Animation อีก)


Main.java

package app.akexorcist.alphaanimation;

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.widget.Button;
import android.widget.ImageView;
import android.app.Activity;

public class Main extends Activity {
    ImageView imgLogo;
    Animation anim;
    
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        imgLogo = (ImageView)findViewById(R.id.imgLogo);

        Button btnAlpha = (Button)findViewById(R.id.btnAlpha);
        btnAlpha.setOnClickListener(new OnClickListener() {
            public void onClick(View arg0) {
                if(imgLogo.getVisibility() == View.VISIBLE) {
                    anim = new AlphaAnimation(1, 0);
                    anim.setDuration(500);
                    imgLogo.startAnimation(anim);
                    imgLogo.setVisibility(View.INVISIBLE);
                } else {
                    anim = new AlphaAnimation(0, 1);
                    anim.setDuration(500);
                    imgLogo.startAnimation(anim);
                    imgLogo.setVisibility(View.VISIBLE);
                }
            }
        });
    }
}


        อืม...จะอธิบายอะไรดีล่ะ มันนิดเดียวเอง...

        แค่สร้างคลาส AlphaAnimation แล้วกำหนดค่า โดยคลาส AlphaAnimation จะให้กำหนดค่า Alpha เริ่มต้น และค่า Alpha สุดท้าย สำหรับค่า Alpha ที่ใช้กำหนดจะเป็นตัวแปรแบบ Float โดยจะมีค่าตั้งแต่ 0 ถึง 1 ซึ่งก็หมายถึงค่า Alpha ตั้งแต่ 0% ถึง 100%

        อย่างคำสั่ง 

        anim = new AlphaAnimation(1, 0);

        ก็จะเป็นการให้เปลี่ยน Alpha จาก 100% ไป 0%

        และ 

        anim = new AlphaAnimation(0, 1);

        ก็จะเปลี่ยน Alpha จาก 0% ไป 100% นั่นเอง โดยกำหนดระยะเวลาของ Animation เป็น 0.5 วินาที 

        ตัวอย่างนี้ก็คล้ายกับบทความเก่านั่นแหละ ที่จะให้กดปุ่มแล้วภาพจางหายไป พอกดอีกทีภาพก็โผล่ขึ้นมา  [Android Code] สร้างการเคลื่อนไหวง่ายๆ ด้วยคลาส Animation


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <Button
        android:id="@+id/btnAlpha"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:text="Alpha" />
    <ImageView
        android:id="@+id/imgLogo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/samplelogo" />
</RelativeLayout>




AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="app.akexorcist.alphaanimation"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".Main"
            android:label="@string/title_activity_main" 
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

แหล่งที่มาของภาพโลโก้


        สำหรับผู้ที่หลงเข้ามาอ่านคนใดต้องการไฟล์ตัวอย่าง ดาวน์โหลดได้จาก

                Animation-Alpha [Google Drive]
                Android-AnimationAlpha [GitHub]



บทความที่เกี่ยวกับคลาส Animation

        [Android Code] สร้างการเคลื่อนไหวง่ายๆ ด้วยคลาส Animation
        [Android Code] สร้างการเคลื่อนไหวง่ายๆ ด้วยคลาส RotateAnimation
        [Android Code] สร้างการเคลื่อนไหวง่ายๆ ด้วยคลาส ScaleAnimation
        [Android Code] สร้างการเคลื่อนไหวง่ายๆ ด้วยคลาส TranslateAnimation



เหล่าพันธมิตรแอนดรอยด์

Devahoy Layer Net NuuNeoI The Cheese Factory Somkiat CC Mart Routine Artit-K Arnondora Kamonway Try to be android developer Oatrice Benz Nest Studios Kotchaphan@Medium Jirawatee@Medium Travispea@Medium