2016-08-18 10 views
0

私が開発しているアプリのデザインをビルドしていますが、画面にフェードするイメージを取得しようとしています。ただし、イメージは正常に翻訳されている間は見えません。画像のアルファをアニメーションしようとしています

facebookLoginButton = (ImageView)findViewById(R.id.facebookLoginButton); // Start of facebookLoginButton code 
facebookLoginButton.setTranslationY(250f); 
facebookLoginButton.setImageAlpha(0); 
facebookLoginButton.animate().translationYBy(-250f).alpha(1).setDuration(1500); // End of facebookLoginButton code 

私はfacebookLoginButton.setImageAlpha(0);を削除すると、私は画像を画面に移動するので、参照画像が正常に動くことを知っている:これは、コードです。どのように画像は見えないままですか?

注:まだアプリケーションには機能がありません。そのため、私のボタンはImageViewです。

答えて

2

View.animate()によって返されたViewPropertyAnimatorがビルダーパターンに従います。メソッドのそれぞれは保留中のViewPropertyAnimatorを返します。start()に電話してアニメーションを有効にする必要があります。

編集:setImageAlpha()View内の画像ではなく、View自体のアルファ値を設定するためアルファはまた、アニメーション化されていません。 ViewPropertyAnimatorViewのアルファベットをアニメーション化しますが、Viewの画像はアニメーション化しません。 ImageView.setAlpha(int alpha)は推奨されていませんが、View.setAlpha(float alpha)はありません。この方法を使用してViewのアルファ値を設定する必要があります。その後、ViewPropertyAnimatorはその値をアニメートできます:

facebookLoginButton.setTranslation(250F); 
facebookLoginButton.setAlpha(0.0F); 
facebookLoginButton.animate() 
      .translationYBy(-250F) 
      .alpha(1.0F) 
      .setDuration(1500) 
      .start(); 
+0

新しいことを教えていただきありがとうございます。しかし、画像はまだ見えないままです。 –

+0

@ConnectionCoder編集した内容を確認してください。 – Bryan

+0

うわー、この新しい情報をありがとう!今では、画像のプロパティの下で最初のアルファを0に設定する必要はありません。どうもありがとうございました! –

関連する問題