web-dev-qa-db-ja.com

プログレスバーの半透明の背景色を変更するandroid

不透明度が50%未満の黒い半透明の背景を持つプログレスバーの背景色を変更したい。私はこれについて多くを検索しましたが、解決策を見つけることができませんでした。私が正しいかどうかはわかりませんが、プログレスバーのmdecorプロパティと関係があります。

以下は、私がそれを使用しているコードです。

pd = ProgressDialog.show(getActivity(), null, null,true);       
pd.setContentView(R.layout.remove_border);

ボーダーレイアウトを削除するためのコードは次のとおりです。

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@Android:color/transparent"
Android:orientation="vertical" >

<ProgressBar
    Android:id="@+id/progressBar1"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_gravity="center"
    Android:background="@Android:color/transparent"
    Android:indeterminateDrawable="@drawable/my_progress_indeterminate" />

</LinearLayout>

My_progress_indeterminateのコードは次のとおりです。

<animated-rotate xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:drawable="@drawable/loadingiconblack"
Android:pivotX="50%"
Android:pivotY="50%" />

以下は、背景領域が赤い丸でマークされている画像です。同じ不透明度で色を白に変えたいです。

enter image description here

編集:

Sripathiとuser3298272のおかげで私の問題の最終的な解決策は、ここで両方の解決策を組み合わせると、私の更新された答えです:

pd = new Dialog(this, Android.R.style.Theme_Black);
View view = LayoutInflater.from(this).inflate(R.layout.remove_border, null);
pd.requestWindowFeature(Window.FEATURE_NO_TITLE);
pd.getWindow().setBackgroundDrawableResource(R.color.transparent);
pd.setContentView(view);
pd.show();

remove_border xmlコード:Android:gravity = "center"が私の線形レイアウトコードに追加されています。

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@Android:color/transparent"
Android:gravity="center"
Android:orientation="vertical" >

<ProgressBar
    Android:id="@+id/progressBar1"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_gravity="center"
    Android:background="@Android:color/transparent"
    Android:indeterminateDrawable="@drawable/my_progress_indeterminate" />

</LinearLayout>

色のxmlコード:

<resources>

  <color name="transparent">#80FFFFFF</color>

</resources>

#80FFFFFFの80は、user3298272から取得した不透明度の値50%です。

あなたはprogressdialogの代わりにダイアログを使うことができます、

    dialogTransparent = new Dialog(this, Android.R.style.Theme_Black);
    View view = LayoutInflater.from(getActivity()).inflate(
            R.layout.remove_border, null);
    dialogTransparent.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialogTransparent.getWindow().setBackgroundDrawableResource(
            R.color.transparent);
    dialogTransparent.setContentView(view);

更新:

   Here the color transparent is  #80FFFFFF
10
Sripathi

16進数のカラーコードの透過色の比率は次のとおりです。
100%-FF
95%-F2
90%-E6
85%-D9
80%-CC
75%-BF
70%-B3
65%-A6
60%— 99
55%— 8C
50%— 80
45%— 73
40%— 66
35%— 59
30%— 4D
25%— 40
20%— 33
15%— 26
10%— 1A
5%— 0D
0%— 00
カラーコードの前に不透明度のパーセンテージを追加するだけです。 :黒のカラーコードは#0000です。 50%の透明な黒が必要な場合、透明度は8を#0000の前に追加するだけです(つまり、#8000

11
Chandru

ProgressBar.setAlpha(0.2f);を設定するだけです。

2
rnofenko