28029


アンドロイド開発で現在、簡単なアニメーションを作成しています。  
画面にtranslationとrotateのボタンと画像a1が表示され、ボタンを押すとそれぞれに対応して動作して機能しています。

質問1:rotateボタンに別の画像b1を設定、translarionボタンを押すと画像a1だけが表示され動作する。rotateボタンを押すと、画像b1だけが表示され、動作するような設定を教えていただければ、大変助かりますのでよろしくお願いします。

java

[code]

        public class MainActivity extends AppCompatActivity {
        Button btn1;
        Button btn2;
        @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        final ImageView img = (ImageView) findViewById(R.id.img);
    
    
        btn1 = (Button) findViewById(R.id.btn1);
    
        final Animation anim = AnimationUtils.loadAnimation(this, R.anim.trans);
        btn1.setOnClickListener(new View.OnClickListener() {
    
            @Override
            public void onClick(View v) {
    
              img.startAnimation(anim);
    
                           }
        });
        btn2 = (Button) findViewById(R.id.btn2);
        btn2.setOnClickListener(new View.OnClickListener() {
            final Animation anim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.rotate);
    
            @Override
            public void onClick(View v) {
                  img.startAnimation(anim);
            }
    
        });
    }}
    
[/code]

xml

[code]

      <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:src="@drawable/ball"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="5dp"
        android:layout_marginLeft="15dp"       
    android:id="@+id/img"/>
    
    />
    
    
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Translate"
    
    
        android:id="@+id/btn1" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Rotate"
            android:id="@+id/btn2" />
    
[/code]


CC BY-SA 3.0
2016-07-31T05:58:55.430
27977
2016-08-06T13:23:27.313
2016-08-06T09:09:38.233
17346
17346
question
android java android-layout
アンドロイド開発のtween アニメーションについて


まず、rotateボタンをImageButtonに変更し、ImageViewのように画像をセットします。必要であれば、さらにandroid:backgroundで背景を透明にしたり、xmlで各状態別（タップ時、選択時、通常時など）の画像をまとめてセットすると良いでしょう。

その後、タップに合わせて他のビューを見た目上消したいのであれば、Javaのコード側からsetVisibilityでViewの可視状態を切り替えつつやれば良いかと思います。

setVisibility(View.GONE)

を設定すると対象のビューがレイアウトから消えます。ビューの位置関係を保ったまま消したい場合は

setVisibility(View.INVISIBLE)

を使用します。元に戻したい場合は

setVisibility(View.VISIBLE)

を設定します。


CC BY-SA 3.0
2016-08-02T14:25:30.963
28029
2016-08-06T13:23:27.313
2016-08-06T13:23:27.313
8795
8795
27977
answer