AndroidでTextViewを点滅させる方法|Handlerを使った点滅アニメーションの実装手順を解説
はじめに
本記事では、AndroidアプリでTextView(テキストビュー)のテキストを点滅させるアニメーションを実装する方法を解説します。Handlerとバックグラウンドスレッドを組み合わせたシンプルな手法なので、Android開発初心者の方でも理解しやすい内容となっています。
手順1:新規プロジェクトを作成する
まずはAndroid Studioで新しいプロジェクトを作成しましょう。メニューから「File」→「New Project」を選択し、必要な項目をすべて入力してプロジェクトを作成します。
手順2:レイアウトファイル(activity_main.xml)にコードを追加する
res/layout/activity_main.xml に以下のコードを記述します。
<?xml version = "1.0" encoding = "utf-8"?>
<RelativeLayout
xmlns:android = "https://schemas.android.com/apk/res/android"
xmlns:tools = "https://schemas.android.com/tools"
android:layout_width = "match_parent"
android:gravity = "center"
android:layout_height = "match_parent">
<TextView
android:id = "@+id/text"
android:textSize = "20dp"
android:textAlignment = "center"
android:layout_width = "match_parent"
android:text = "Text blinking animation"
android:layout_height = "wrap_content" />
</RelativeLayout>
このコードでは、画面中央に点滅アニメーションを表示するためのTextViewを1つ配置しています。
手順3:MainActivity.java にコードを追加する
続いて、src/MainActivity.java に以下のコードを記述します。
package com.example.andy.myapplication;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
blinkTextView();
}
private void blinkTextView() {
final Handler handler = new Handler();
new Thread(new Runnable() {
@Override
public void run() {
int timeToBlink = 1000;
try{Thread.sleep(timeToBlink);}catch (Exception e) {}
handler.post(new Runnable() {
@Override
public void run() {
TextView txt = findViewById(R.id.text);
if(txt.getVisibility() == View.VISIBLE){
txt.setVisibility(View.INVISIBLE);
} else {
txt.setVisibility(View.VISIBLE);
}
blinkTextView();
}
});
}
}).start();
}
}
点滅アニメーションの仕組み
TextViewを点滅させているのは、以下のblinkTextView()メソッドです。
private void blinkTextView() {
final Handler handler = new Handler();
new Thread(new Runnable() {
@Override
public void run() {
int timeToBlink = 1000;
try{Thread.sleep(timeToBlink);}catch (Exception e) {}
handler.post(new Runnable() {
@Override
public void run() {
TextView txt = findViewById(R.id.text);
if(txt.getVisibility() == View.VISIBLE) {
txt.setVisibility(View.INVISIBLE);
} else {
txt.setVisibility(View.VISIBLE);
}
blinkTextView();
}
});
}
}).start();
}
このメソッドでは、バックグラウンドスレッド内で1000ミリ秒(1秒)ごとの待機処理を行い、Handlerを使ってUIスレッド上でTextViewの表示状態を切り替えています。表示中なら「INVISIBLE」に、非表示なら「VISIBLE」に変更することで、テキストが点滅して見える仕組みです。その後、再びblinkTextView()を呼び出すことで処理を無限に繰り返しています。
アプリを実行してみよう
それでは、実際にアプリを実行してみましょう。実行前に、AndroidスマートフォンをPCに接続しておいてください。Android Studioでプロジェクト内のアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックします。接続したモバイル端末を選択すると、スマートフォンの画面にアプリが起動します。


まとめ
上記の実行結果のように、TextViewの表示・非表示を一定間隔で切り替えることで、テキストが点滅するアニメーションを実現できます。点滅の間隔を調整したい場合は、timeToBlinkの値(ミリ秒)を変更してください。通知や注意喚起など、ユーザーの視線を引きたい場面でぜひ活用してみてください。
-
【Android】エミュレータのIPアドレスを取得して表示する方法を解説
はじめにこの記事では、Androidアプリから端末(エミュレータ/実機)のIPアドレスを取得し、画面に表示する方法を、実際のサンプルコードとともにステップ形式で解説します。Wi-Fi接続情報を利用したシンプルな実装例なので、Android開発初心者の方にもわかりやすい内容となっています。手順1:新規プロジェクトの作成まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目を入力してプロジェクトを作成してください。手順2:レイアウトファイル(activity_main.xml)の編集res/layout/acti
-
【Android】ボタンの角を丸くする方法を徹底解説!カスタムドローアブルで実装する手順
このチュートリアルでは、Androidアプリでボタンの角を丸く表示する方法を、実際のコード例とともにわかりやすく解説します。カスタムドローアブル(Drawable)を活用することで、通常時・フォーカス時・押下時といったボタンの状態に応じた角丸デザインも柔軟に実現できます。 手順1:Android Studioで新規プロジェクトを作成する まずはAndroid Studioを起動し、メニューから「File → New Project」を選択して新しいプロジェクトを作成しましょう。必要な項目をすべて入力し、プロジェクトのセットアップを完了させてください。 手順2:レイアウトファイル(activit