xml標高プロパティによって生成される影の色を変更することは可能ですか?コードによって影を動的に変更したい。
私はこの質問が非常に古く、おそらく著者が答えをもう必要としないことを知っています。他の人が見つけられるように、ここに置いておきます。
Lollipopの標高システムは、色付きの影をサポートしていません。
ただし、色付きのシャドウが必要な場合は、Carbonを使用して取得できます。これは、マテリアルデザイン用の一種のサポートライブラリであり、最新バージョンでは、シャドウカラーを変更するオプションがあります。 Behanceには色付きの影を特徴とする素敵なデザインがたくさんあります。Androidにこのような機能がなくても、それらを持っているのはいいことだと思いました。色付きの影がallAndroidバージョン、5.0以降でもエミュレートされることに注意することが重要です。
https://github.com/ZieIony/Carbon
次の画像とコードは、Carbonのサンプルにあります。
コード:
<carbon.widget.LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal">
<carbon.widget.Button
Android:layout_width="56dp"
Android:layout_height="56dp"
Android:layout_margin="@dimen/carbon_padding"
Android:background="#ffffff"
app:carbon_cornerRadius="2dp"
app:carbon_elevation="8dp"
app:carbon_elevationShadowColor="@color/carbon_red_700"/>
</carbon.widget.LinearLayout>
「CardView」:
<carbon.widget.LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal">
<carbon.widget.LinearLayout
Android:layout_width="match_parent"
Android:layout_height="160dp"
Android:layout_margin="@dimen/carbon_margin"
Android:background="#ffffff"
app:carbon_cornerRadius="2dp"
app:carbon_elevation="8dp"
app:carbon_elevationShadowColor="@color/carbon_red_700">
<carbon.widget.ImageView
Android:layout_width="match_parent"
Android:layout_height="0dp"
Android:layout_weight="1"
Android:src="@drawable/test_image"/>
<carbon.widget.TextView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:text="test text"/>
</carbon.widget.LinearLayout>
</carbon.widget.LinearLayout>
API 28(パイ)の開始 View#setOutlineAmbientShadowColor(int color) および View#setOutlineSpotShadowColor(int color) は、Viewクラスで使用できます。
ビューで標高を使用する場合、両方の方法を使用して影の色を変更できます。
Shadow Layout を使用できます。 answer を確認してください。