TextViewをスライドさせたい

このエントリーをはてなブックマークに追加

TextViewをスライドするアニメーションを作りたい。ということで調べてみた。
やりたいのは、TextViewを左から右へスライドさせたい。

xmlファイルを使用するやり方

「res」フォルダに「anim」というフォルダを作成する。そこに「left_in.xml」と「right_out.xml」ファイルをそれぞれ作成する。
left_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set 
	xmlns:android="http://schemas.android.com/apk/res/android">
	<translate
		android:fromXDelta="-100%p"
		android:toXDelta="0"
		android:duration="500"/>
</set>

right_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set 
	xmlns:android="http://schemas.android.com/apk/res/android">
	<translate
		android:fromXDelta="0"
		android:toXDelta="100%p"
		android:duration="500"/>
</set>

メインのjavaのコード

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
	private Animation inFromRightAnimation;
	private Animation outToLeftAnimation;
	private TextView textView1;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		textView1 = (TextView)this.findViewById(R.id.textView1);
		inFromRightAnimation = AnimationUtils.loadAnimation(this, R.anim.right_in);
 		outToLeftAnimation = AnimationUtils.loadAnimation(this, R.anim.left_out);
 		
		Button btButton1 = (Button)findViewById(R.id.button1);
		btButton1.setOnClickListener(new OnClickListener() {
        	public void onClick(View v) {
        		textView1.startAnimation(inFromRightAnimation);
        	}
		});
		
		Button btButton2 = (Button)findViewById(R.id.button2);
		btButton2.setOnClickListener(new OnClickListener() {
        	public void onClick(View v) {
        		textView1.startAnimation(outToLeftAnimation);
        	}
		});
	}
}

xmlをしないやり方

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
	private TranslateAnimation inFromRightAnimation;
	private TranslateAnimation outToLeftAnimation;
	private TextView textView1;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		textView1 = (TextView)this.findViewById(R.id.textView1);
		
		inFromRightAnimation = new TranslateAnimation(
				Animation.RELATIVE_TO_SELF, 3,
				Animation.RELATIVE_TO_SELF, 0,
				Animation.RELATIVE_TO_SELF, 0,
				Animation.RELATIVE_TO_SELF, 0);
		inFromRightAnimation.setDuration(1000);
		inFromRightAnimation.setFillEnabled(true);
		inFromRightAnimation.setFillAfter(true);
		
		outToLeftAnimation = new TranslateAnimation(
				Animation.RELATIVE_TO_SELF, 0,
				Animation.RELATIVE_TO_SELF, -3,
				Animation.RELATIVE_TO_SELF, 0,
				Animation.RELATIVE_TO_SELF, 0);
		outToLeftAnimation.setDuration(1000);
		outToLeftAnimation.setFillEnabled(true);
		outToLeftAnimation.setFillAfter(true);
		
		Button btButton1 = (Button)findViewById(R.id.button1);
		btButton1.setOnClickListener(new OnClickListener() {
        	public void onClick(View v) {
        		textView1.startAnimation(inFromRightAnimation);
        	}
		});
		
		Button btButton2 = (Button)findViewById(R.id.button2);
		btButton2.setOnClickListener(new OnClickListener() {
        	public void onClick(View v) {
        		textView1.startAnimation(outToLeftAnimation);
        	}
		});
	}
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です