我有一个LinearLayout,我创建(以编程方式)并添加按钮
public void initButtons(){
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
new android.app.ActionBar.LayoutParams(dpiToPixels(context, 100), dpiToPixels(context,100)));
params.setMargins(dpiToPixels(context,20), 0, 0, 0);
button.setLayoutParams(params);
}
layout.addView(button, index);
当用户触摸(onTouchListener)时,我想缩放任何按钮:
button.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
LinearLayout.LayoutParams lp = (android.widget.LinearLayout.LayoutParams) button
.getLayoutParams();
if (event.getAction() == MotionEvent.ACTION_DOWN) {
lp.width = (int) (93 * Resources.getSystem()
.getDisplayMetrics().density);
lp.height = (int) (93 * Resources.getSystem()
.getDisplayMetrics().density);
button.setLayoutParams(lp);
}
else if (event.getAction() == MotionEvent.ACTION_UP) {
lp.width = (int) (100 * Resources.getSystem()
.getDisplayMetrics().density);
lp.height = (int) (100 * Resources.getSystem()
.getDisplayMetrics().density);
button.setLayoutParams(lp);
}
return false;
}
});
问题在于,当我按下一个按钮时,它会影响LinearLayout上的每个其他按钮(看起来缩放并向左移动一点)。任何人都知道如何解决这个问题?
答案 0 :(得分:0)
这必然会发生在LinearLayout中。
尝试使用FrameLayout。在frameLayout中,更改一个按钮大小不会影响其他按钮。
你也可以使用RelativeLayout,但是你不应该按下按钮“相对”。对其中的其他人。