gpt4 book ai didi

Android 按钮 setAlpha

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:03:53 33 4
gpt4 key购买 nike

有一组按钮,我要得到结果:

当我点击其中一个时,首先我将它们分成两部分:被点击的部分和其他部分。我正在尝试为它们设置不同的颜色或 alpha 值。

现在我使用 setAlpha,但是当我将值从 0 更改为 255 时,它起作用了,但是当我将值从 255 更改为 0 ,它不起作用。我不知道为什么。

也许在调用方法Button.setAlpha() 之后,我需要调用另一个方法?

我的代码:

public class MainActivity extends Activity {
// button alpha value: minimize value
public static int BUTTON_ALPHA_MIN = 0;

// button alpha value: maximize value
public static int BUTTON_ALPHA_MAX = 255;

private LinearLayout centerRegion;
private LinearLayout bottomRegion;

private Button btnCheckIn;
private Button btnReview;
private Button btnMyCircles;
private Button btnSettings;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// get all the widgets
getAllWidgets();

// set buttons click response function
btnCheckIn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
centerRegion.setBackgroundColor(android.graphics.Color.RED);

btnReview.getBackground().setAlpha(BUTTON_ALPHA_MIN);
btnMyCircles.getBackground().setAlpha(BUTTON_ALPHA_MIN);
btnSettings.getBackground().setAlpha(BUTTON_ALPHA_MIN);

btnCheckIn.getBackground().setAlpha(BUTTON_ALPHA_MAX);
}
});

btnReview.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
centerRegion.setBackgroundColor(android.graphics.Color.BLUE);

btnCheckIn.getBackground().setAlpha(BUTTON_ALPHA_MIN);
btnMyCircles.getBackground().setAlpha(BUTTON_ALPHA_MIN);
btnSettings.getBackground().setAlpha(BUTTON_ALPHA_MIN);

btnReview.getBackground().setAlpha(BUTTON_ALPHA_MAX);
}
});

btnMyCircles.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
centerRegion.setBackgroundColor(android.graphics.Color.YELLOW);

btnCheckIn.getBackground().setAlpha(BUTTON_ALPHA_MAX);
btnReview.getBackground().setAlpha(BUTTON_ALPHA_MAX);
btnSettings.getBackground().setAlpha(BUTTON_ALPHA_MAX);

v.getBackground().setAlpha(BUTTON_ALPHA_MIN);
}
});

btnSettings.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
centerRegion.setBackgroundColor(android.graphics.Color.MAGENTA);

btnCheckIn.getBackground().setAlpha(BUTTON_ALPHA_MAX);
btnReview.getBackground().setAlpha(BUTTON_ALPHA_MAX);
btnMyCircles.getBackground().setAlpha(BUTTON_ALPHA_MAX);

v.getBackground().setAlpha(BUTTON_ALPHA_MIN);
}
});
}

/**
* get all the widgets
*/
public void getAllWidgets() {
this.centerRegion = (LinearLayout) this.findViewById(R.id.center_region);
this.bottomRegion = (LinearLayout) this.findViewById(R.id.bottom_region);

this.btnCheckIn = (Button) this.findViewById(R.id.button_check_in);
this.btnReview = (Button) this.findViewById(R.id.button_review);
this.btnMyCircles = (Button) this.findViewById(R.id.button_my_circles);
this.btnSettings = (Button) this.findViewById(R.id.button_setting);
}
}

最佳答案

使用 AlphaAnimation 应该可以;在我的设备上验证。

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);
}
}
}

关键是调用 setFillAfter(true) 以便 alpha 更改持续存在。

关于Android 按钮 setAlpha,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3262118/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com