2016-09-21 210 views
1

我一直在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

回答

0

您可以選擇狀態....嘗試

在繪製文件夾

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