透化CardViewに枠が表示されてしまう問題 | Transparent CardView | Android

スポンサーリンク

透明度を含めた色を背景色に指定したCardViewを表示しようとすると、内部に四角い枠が表示されてしまう。

スポンサーリンク

問題の表示

といった具合にpaddingがあって、中にもう一つの四角が表示される。

この場合のXMLは以下のように指定している。

buttomColorは#BBFFFFFF として透明度をBBで指定している

<android.support.v7.widget.CardView
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="50dp"
    android:layout_marginStart="50dp"
    android:id="@+id/teCardView"
    app:cardBackgroundColor="@color/buttomColor"
    app:cardCornerRadius="1dp">
</android.support.v7.widget.CardView>

表示したい結果

これは本来は以下のようにしたい。

表示方法

方法はJAVA側で再度指定すること。当初、XML側でpaddingの設定などが原因では?と探りましたが、そうではありませんでした。以下が解決策。

teCardView.setBackgroundColor(getResources().getColor(R.color.mapButtom));

もう一つの方法としてはXML側で透明度を指定せず6桁表記にし、JAVA側で

teCardView.setAlpha(0.8f);

とする方法で指定する。どちらの方法でもよいものの、下の方法のほうが互換性はあるらしい・・?

ただし、スマートではない気がしますね。googleには修正していただきたいものです。