我一直在Android Studio上使用这个温度转换器应用程序,我正在努力制作一个圆形边缘按钮。我完成了我的研究,使用XML文件到drawable是我的最佳选择。但是,我打算不在主活动xml文件中调整它,而是通过JAVA(因为我希望单击时按钮形状更改为圆角框形状)
现在,我的主要活动java的一部分看起来像
mmBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mmSelectedClicked[0] = true;
cmSelectedClicked[0] = false;
kmSelectedClicked[0] = false;
miSelectedClicked[0] = false;
mSelectedClicked[0] = false;
ydSelectedClicked[0] = false;
inSelectedClicked[0] = false;
kmBtn.setBackgroundColor(Color.parseColor("#FFFFFFFF"));
cmBtn.setBackgroundColor(Color.parseColor("#FFFFFFFF"));
miBtn.setBackgroundColor(Color.parseColor("#FFFFFFFF"));
mBtn.setBackgroundColor(Color.parseColor("#FFFFFFFF"));
ydBtn.setBackgroundColor(Color.parseColor("#FFFFFFFF"));
inBtn.setBackgroundColor(Color.parseColor("#FFFFFFFF"));
if(mmSelectedClicked[0] == true){
view.setBackground(ColorDrawable.createFromPath("roundbutton"));
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
HscrollView1.smoothScrollTo((int) mmBtn.getX() - 150, 0);
}
}, 500);
} else {
}
}
});
我已实施:
view.setBackground(ColorDrawable.createFromPath("roundbutton"));
将背景(drawable)更改为" roundbutton.xml"在drawable文件夹下。
应用程序没有崩溃,然而,按钮背景显示在无颜色边框矩形框中,我没有在我的" roundbutton.xml"中设置。
如上所示,当我初始化我的应用程序时,xml(可绘制)应用按钮显示为带有丑陋边框线的左按钮框(毫米毫米)。 (fyi,右键是非xml应用按钮,但应该是它应该根据roundbutton.xml显示的颜色。
在我的Android Studio预览中,框似乎在我的roundbutton.xml中显示(完全着色,而不是白框),但在我的实际应用中,它不会显示。
我的圆形按钮xml代码:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<!-- you can use any color you want I used here gray color-->
<solid android:color="#CEF8D6"/>
<corners android:radius="10dp"
android:bottomRightRadius="10dp"
android:bottomLeftRadius="10dp"
android:topLeftRadius="10dp"
android:topRightRadius="10dp"/>
</shape>
我希望将我的可绘制图像作为按钮的背景,当我按下其他按钮时,它将恢复正常#FFFFFFFF。
如果您有解决此问题的方法,我将非常感激。 : - )
答案 0 :(得分:0)
您可以尝试使用状态选择器....
在drawable文件夹中创建新文件 selectors.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/roundbutton" />
<item android:state_focused="true" android:drawable="@drawable/roundbutton" />
<item android:state_focused="false" android:drawable="@color/defaultColorWhite" />
<item android:drawable="@color/defaultColorWhite" />
</selector>
并按下按钮
<button
.....
android:background:@drawable/selectors
/>
答案 1 :(得分:0)
你需要在形状中设置size
项目!
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<!-- you can use any color you want I used here gray color-->
<solid android:color="#CEF8D6"/>
<corners android:radius="10dp"
android:bottomRightRadius="10dp"
android:bottomLeftRadius="10dp"
android:topLeftRadius="10dp"
android:topRightRadius="10dp"/>
<size android:width=xxdp
android:height=xxdp/>
</shape>
答案 2 :(得分:0)
使用此(增加半径)
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<!-- you can use any color you want I used here gray color-->
<solid android:color="#CEF8D6"/>
<corners android:radius="30dp"
android:bottomRightRadius="30dp"
android:bottomLeftRadius="30dp"
android:topLeftRadius="30dp"
android:topRightRadius="30dp"/>
</shape>