缩放按钮不影响其他按钮

时间:2016-05-21 16:13:57

标签: android android-layout scale

我有一个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上的每个其他按钮(看起来缩放并向左移动一点)。任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这必然会发生在LinearLayout中。

尝试使用FrameLayout。在frameLayout中,更改一个按钮大小不会影响其他按钮。

你也可以使用RelativeLayout,但是你不应该按下按钮“相对”。对其中的其他人。