圆形边缘形状按钮不显示在设备上

问题描述:

我一直在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”中设置。

enter image description here

如上所见,当我初始化我的应用程序,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。

如果您有解决此问题的解决方案,我将不胜感激。 :-)

+0

仅限Android:半径= “10dp” 在角落里是足够多的 – Nepster

+0

view.setBackground(ColorDrawable.createFromPath( “RoundButton的”));声明是错误的。你可以设置它像view.setBackgroundResource(R.drawable.roundbutton); – Nepster

您可以选择状态....尝试

在绘制文件夹

<?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>