Android 安卓工作室利润变化
我试着去研究,但我不知道是正面还是反面,因为我对这个太陌生了 我使用的是约束布局。 我有一个按钮,按钮1。 button1的底边距为10 有没有一个简单的方法,使它这样当我点击我的按钮,它会改变底部边缘为20 这是我的简单代码:Android 安卓工作室利润变化,android,button,margin,Android,Button,Margin,我试着去研究,但我不知道是正面还是反面,因为我对这个太陌生了 我使用的是约束布局。 我有一个按钮,按钮1。 button1的底边距为10 有没有一个简单的方法,使它这样当我点击我的按钮,它会改变底部边缘为20 这是我的简单代码: button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (butt
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (butt1){
button1.setBackgroundResource(buttonpress2);
butt1 = false;
}else{
button1.setBackgroundResource(buttonpress);
butt1 = true;
}
}
});
此外:
尝试使用ConstraintLayout.LayoutParams,如《开发人员指南》中所述 您可以这样做:
ConstraintLayout.LayoutParams params = new ConstraintLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.setMargins(left, top, right, bottom);
button1.setLayoutParams(params);
与其创建一个新的布局参数对象,不如用视图已有的对象实例化它。。。这样,它将保留您在xml中设置的所有属性,并在您在此处更改后更新 这样做
int marginInPixels = dpToPx(10);
public int dpToPx(int dp) {
DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
return Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
}
ConstraintLayout.LayoutParams params =
(ConstraintLayout.LayoutParams)button1.getLayoutParams();
params.topMargin = marginInPixels;
button1.setLayoutParams(params);
当我尝试这一点时,它改变了我的按钮的形状,将其移动到右上角,我不知道如何调整它使其工作……感谢您的帮助!我真的很感激,即使我不能理解。这似乎是我能弄明白的。。。有没有办法只改变一个边距。。。?这种方式似乎将它们全部设置为0。是的,可以这样做,如果您想更改上边距,请使用以下选项:params.topMargin=10或对于左边距,请使用此params.leftMargin=12。谢谢!不确定这是否是一个优雅的解决方案,但这是我现在能处理的全部!非常感谢你的帮助!很高兴这对您有所帮助,这是一个小建议,您不应该以像素为单位设置边距值,因为它不适合不同的屏幕大小,而是使用此链接“”了解如何将dp值转换为像素,然后应用它。如果您仍然在,最后一个问题是。。。我有它,所以它会改变。。。但我原来的利润率似乎设定为10dp,而新的“20”似乎不在dp中。。。。思想?我还没问就回答了!
int marginInPixels = dpToPx(10);
public int dpToPx(int dp) {
DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
return Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
}
ConstraintLayout.LayoutParams params =
(ConstraintLayout.LayoutParams)button1.getLayoutParams();
params.topMargin = marginInPixels;
button1.setLayoutParams(params);