2016-08-11 22 views
3

ボタンの内側に円形のプログレスバーを作りたいと思います。 のようにライブラリを使いたくないのですdmytrodanylyk/circular-progress-button, etc..ボタンの中に円形のプログレスバーを設定する方法

私はこの解決法がdrawableと考えられます。

ので、私は、プログレスバーが停止され、circular_progress.xml

<?xml version="1.0" encoding="utf-8"?> 
    <rotate xmlns:android="http://schemas.android.com/apk/res/android" 
     android:fromDegrees="0" 
     android:pivotX="50%" 
     android:pivotY="50%" 
     android:duration="1" 
     android:toDegrees="360" > 

     <shape 
      android:innerRadiusRatio="3" 
      android:shape="ring" 
      android:thicknessRatio="8" 
      android:useLevel="false" > 
      <size 
       android:height="48dip" 
       android:width="48dip" /> 

      <gradient 
       android:centerColor="#f0f0f0" 
       android:centerY="0.50" 
       android:endColor="#000000" 
       android:startColor="#ffffff" 
       android:type="sweep" 
       android:useLevel="false" /> 
     </shape> 

    </rotate> 

と、

<Button 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:text="Log In" 
       android:layout_below="@+id/passwordWrapper" 
       android:layout_marginTop="5dp" 
       android:theme="@style/AppTheme.SignButton" 
       android:id="@+id/loginButton" 
       android:drawableRight="@drawable/circular_progress" 
       /> 

enter image description here

を作るけど。

第2の解決方法は、プログレスバーを有するカスタムボタンクラスを作ることである。

しかし、私はプログレスバーを持つカスタムボタンクラスを作ることを知らない。この

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<Button 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:text="Log In" 
    android:layout_below="@+id/passwordWrapper" 
    android:layout_marginTop="5dp" 
    android:theme="@style/AppTheme.SignButton" 
    android:id="@+id/loginButton" 
    /> 
<ProgressBar 
    android:id="@+id/progress_bar" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true"/> 
</RelativeLayout> 

のような、あなたの活動に、ボタンの内側

答えて

5

使用のProgressBarは、この

ProgressBar progressBar = (ProgressBar) findViewById(R.id.progress_bar); 

のようなプログレスバーを初期化し、プログレスバーが見えるようにしたいときにこれを追加し

progressBar.setVisibility(View.VISIBLE); 

これを追加してProgressBarを非表示にする場合

progressBar.setVisibility(View.GONE); 
関連する問題