Android Button setAlpha

前端 未结 4 1363
太阳男子
太阳男子 2021-01-13 06:47

There are a set of buttons, I want to get the result:

When I click one of them, first I divide them into two parts: the clicked one and the others. I\'m trying to se

4条回答
  •  温柔的废话
    2021-01-13 07:48

    Using AlphaAnimation should work; verified on my device.

    public class Test extends Activity implements OnClickListener {
    
        private AlphaAnimation alphaDown;
        private AlphaAnimation alphaUp;
        private Button b1;
        private Button b2;
    
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            LinearLayout ll = (LinearLayout) findViewById(R.id.linear_layout);
    
            b1 = new Button(this);
            b1.setText("Button 1");
            b1.setOnClickListener(this);
            ll.addView(b1);
    
            b2 = new Button(this);
            b2.setText("Button 2");
            b2.setOnClickListener(this);
            ll.addView(b2);
    
            alphaDown = new AlphaAnimation(1.0f, 0.3f);
            alphaUp = new AlphaAnimation(0.3f, 1.0f);
            alphaDown.setDuration(1000);
            alphaUp.setDuration(1000);
            alphaDown.setFillAfter(true);
            alphaUp.setFillAfter(true);
        }
    
        public void onClick(View v) {
            if (v == b1) {
                b1.startAnimation(alphaUp);
                b2.startAnimation(alphaDown);
            } else {
                b1.startAnimation(alphaDown);
                b2.startAnimation(alphaUp);
            }
        }
    }
    

    The key is calling setFillAfter(true) so that the alpha change persists.

提交回复
热议问题