透化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には修正していただきたいものです。