次のような画面を作成しようとしています。
Some very long text, saying something
今、私が欲しいのは、スプラッシュスクリーンに画像のみをロードすることです。次に、その下のテキストを文字ごとにフェードインさせます。
フレーム 1: S
フレーム 2: そう
3コマ目:ソムなど
私のレイアウトは次のようになります(まだ画像を表示していません):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/fader">
</LinearLayout>
</RelativeLayout>
私のJavaは次のようになります。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
View faderLayout = findViewById(R.id.fader);
TextView[] faderTextViews = getFaderTextViews();
for(int i=0; i<faderTextViews.length; i++)
{
((LinearLayout) faderLayout).addView(faderTextViews[i]);
faderLayout.invalidate();
}
}
private TextView[] getFaderTextViews()
{
final Animation in = new AlphaAnimation(0.0f, 1.0f);
in.setDuration(3000);
final Animation out = new AlphaAnimation(1.0f, 0.0f);
out.setDuration(3000);
char[] veryLongString = "This is a very long string".toCharArray();
TextView[] faderTextViews = new TextView[veryLongString.length];
for(int i = 0; i<faderTextViews.length; i++)
{
TextView temp = new TextView(this);
temp.setText(veryLongString, i, 1);
temp.setLayoutParams(new LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
temp.startAnimation(in);
faderTextViews[i] = temp;
}
return faderTextViews;
}
結局、文字列全体が一度にフェード インします。
これを行う方法はありますか?