2017-06-02 12 views
0

私のイメージボタンは画面の上から始まり、画面の終わりに来て、それの後ろに別のイメージボタンがあり、これは永遠に道路の白い帯のように続きます。 1つのボタンが画面の終わりに達すると、目に見えない部分が画面の上部に表示されなければならず、これは各ボタンに当てはまるはずです。アンドロイドでアニメーションを続ける方法は?

クリアビューの最後の画像ボタンの画像を参照してください。

Screenshot

これは私のXMLファイル

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
tools:context="com.ash432.itguesses.options" 
android:background="#040404"> 

<ImageButton 
    android:layout_width="5dp" 
    android:layout_height="40dp" 
    android:id="@+id/im1" 
    android:layout_marginLeft="29dp" 
    android:layout_marginStart="29dp" 
    android:background="#f9f6f6" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layoutAnimation="@anim/layout_anim" 
    /> 

<ImageButton 
    android:layout_width="5dp" 
    android:layout_height="40dp" 
    android:id="@+id/im2" 
    android:background="#f9f6f6" 
    android:layout_marginTop="26dp" 
    android:layout_below="@+id/im1" 
    android:layout_alignLeft="@+id/im1" 
    android:layout_alignStart="@+id/im1" /> 

<ImageButton 
    android:layout_width="5dp" 
    android:layout_height="40dp" 
    android:id="@+id/im3" 
    android:background="#f9f6f6" 
    android:layout_marginTop="26dp" 
    android:layout_below="@+id/im2" 
    android:layout_alignLeft="@+id/im2" 
    android:layout_alignStart="@+id/im2" /> 

<ImageButton 
    android:layout_width="5dp" 
    android:layout_height="40dp" 
    android:id="@+id/im4" 
    android:background="#ffffff" 
    android:layout_marginTop="26dp" 
    android:layout_below="@+id/im3" 
    android:layout_alignLeft="@+id/im3" 
    android:layout_alignStart="@+id/im3" /> 

<ImageButton 
    android:layout_width="5dp" 
    android:layout_height="40dp" 
    android:id="@+id/im5" 
    android:background="#ffffff" 
    android:layout_marginTop="26dp" 
    android:layout_below="@+id/im4" 
    android:layout_alignLeft="@+id/im4" 
    android:layout_alignStart="@+id/im4" /> 

<ImageButton 
    android:layout_width="5dp" 
    android:layout_height="40dp" 
    android:id="@+id/im6" 
    android:background="#ffffff" 
    android:layout_marginTop="26dp" 
    android:layout_below="@+id/im5" 
    android:layout_alignLeft="@+id/im5" 
    android:layout_alignStart="@+id/im5" /> 

<ImageButton 
    android:layout_width="5dp" 
    android:layout_height="40dp" 
    android:id="@+id/im7" 
    android:background="#ffffff" 
    android:layout_marginTop="26dp" 
    android:layout_below="@+id/im6" 
    android:layout_alignLeft="@+id/im6" 
    android:layout_alignStart="@+id/im6" /> 

<ImageButton 
    android:layout_width="5dp" 
    android:layout_height="40dp" 
    android:id="@+id/im8" 
    android:background="#ffffff" 
    android:layout_marginTop="26dp" 
    android:layout_below="@+id/im7" 
    android:layout_alignLeft="@+id/im7" 
    android:layout_alignStart="@+id/im7" /> 

そして、ここでのコードであるJavaコードが

public class options extends AppCompatActivity 
{ 
private ImageButton im1,im2,im3,im4,im5,im6,im7,im8; 
private Animation mAnimation; 
//private Button b; 
@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_options); 


    im1 = (ImageButton)findViewById(R.id.im1); 
    im2 = (ImageButton)findViewById(R.id.im2); 
    im3 = (ImageButton)findViewById(R.id.im3); 
    im4 = (ImageButton)findViewById(R.id.im4); 
    im5 = (ImageButton)findViewById(R.id.im5); 
    im6 = (ImageButton)findViewById(R.id.im6); 
    im7 = (ImageButton)findViewById(R.id.im7); 
    im8 = (ImageButton)findViewById(R.id.im8); 

    mAnimation = new TranslateAnimation(
      TranslateAnimation.ABSOLUTE, 0f, 
      TranslateAnimation.ABSOLUTE, 0f, 
      TranslateAnimation.RELATIVE_TO_PARENT, 0.0f, 
      TranslateAnimation.RELATIVE_TO_PARENT, 1.0f); 
    mAnimation.setDuration(2000); 
    mAnimation.setRepeatCount(-1); 
    mAnimation.setRepeatMode(Animation.INFINITE); 
    mAnimation.setInterpolator(new LinearInterpolator()); 
    mAnimation.getStartTime(); 
    im1.setAnimation(mAnimation); 
    im2.setAnimation(mAnimation); 
    im3.setAnimation(mAnimation); 
    im4.setAnimation(mAnimation); 
    im5.setAnimation(mAnimation); 
    im6.setAnimation(mAnimation); 
    im7.setAnimation(mAnimation); 
    im8.setAnimation(mAnimation); 
} 
} 

UPDATE-

です

質問を正しく理解できない方のために。

1)最初は画面上に何も背景がほしくありません。

2)しばらくしてから、画面の上部から白い帯が見えるはずです。

3)それが完全に来たら、しばらくしてから2番目の白い帯が見えるはずです。

4)すべて同じ手順です。8個の画像ボタン

5)最初の画像ボタンが画面の一番下にくると、そのサイズは減少しているはずですが、画面の上部ではサイズが大きくなるはずです。 同様にすべてのボタンのために、彼らが画面

6の底部に到達したとき)のストリップ間のギャップが一定であるべきです。

は、ここで私は私は私の質問を明らかにしたと思っているsteps-

Image

を示す画像です。

答えて

0

あなたの質問はあまり明確ではありませんが、私はそれらの白い縞模様をリサイクルしたいと考えています。

これにはRecyclerViewを使用する必要があります。あなたのXMLで

compile 'com.android.support:recyclerview-v7:23.1.1' 

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
tools:context="com.ash432.itguesses.options" 
android:background="#040404"> 

<android.support.v7.widget.RecyclerView 
     android:id="@+id/recycler_view" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:scrollbars="vertical" /> 

</RelativeLayout> 

は、次に、これらのストライプのための別のXMLレイアウトを作成し、Adapterを使用してそれらを接続します。

編集:

RecyclerViewを有するListViewの高度なバージョンである良好performance.It以前のキャッシュ内に配置することができる特定のアダプタの位置のデータを表示するために使用されるビューは、後で同じタイプを表示するために再利用していますデータのもう一度

Adapterは、データセット内の項目を表すビューを提供するRecyclerView.Adapterのサブクラスです。

hereは、recyclerviewの実装方法を学ぶ素晴らしいソースです。

+0

実際はAndroidが初めてです。だから私はアダプターとRecycler Viewを使用する方法を知りません。詳しく教えてください。 – Ash

+0

@Ashは私の編集をチェックします。 –

+0

アダプタとリサイクルビューを実装するのが難しかったです。また、私のAndroid StudioはRecycler Viewをサポートしていません。あなたはこれを行うための他の方法を提案できますか?あなたが私の質問を理解していれば、私の更新も読んでください。 – Ash

関連する問題