圆形边缘形状按钮不显示在设备上
问题描述:
我一直在Android Studio上的这个温度转换器应用程序工作,我正在努力使圆边按钮。我已经完成了我的研究并将XML文件用于绘图是我拥有的最佳选择。然而,我打算调整这不是在主要活动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"));
到后台(绘制)更改为绘制文件夹下的 “roundbutton.xml”。
应用程序在没有崩溃的情况下工作,但是,按钮背景显示在无色边框矩形框中,我没有在“roundbutton.xml”中设置。
如上所见,当我初始化我的应用程序,XML(可拉伸)-applied按钮显示为左按钮框(毫米毫米)与难看边界线。 (fyi,右边的按钮是非xml应用的按钮,但应该是它应该根据roundbutton.xml显示的颜色)
在我的Android Studio预览中,框似乎按照所述显示,而不是一个白框)在我roundbutton.xml,但我的实际应用程序,它不会显示出来
我RoundButton的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。
如果您有解决此问题的解决方案,我将不胜感激。 :-)
答
您可以选择状态....尝试
在绘制文件夹
<?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>
,并在您的按钮,创建新的文件selectors.xml把
<button
.....
android:background:@drawable/selectors
/>
答
你需要在形状中设置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>
答
使用此(增加的半径)
<?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>
仅限Android:半径= “10dp” 在角落里是足够多的 – Nepster
view.setBackground(ColorDrawable.createFromPath( “RoundButton的”));声明是错误的。你可以设置它像view.setBackgroundResource(R.drawable.roundbutton); – Nepster