web-dev-qa-db-ja.com

Androidマテリアルの標高の影の色を変更

xml標高プロパティによって生成される影の色を変更することは可能ですか?コードによって影を動的に変更したい。

28
Broadwell

私はこの質問が非常に古く、おそらく著者が答えをもう必要としないことを知っています。他の人が見つけられるように、ここに置いておきます。

Lollipopの標高システムは、色付きの影をサポートしていません。

ただし、色付きのシャドウが必要な場合は、Carbonを使用して取得できます。これは、マテリアルデザイン用の一種のサポートライブラリであり、最新バージョンでは、シャドウカラーを変更するオプションがあります。 Behanceには色付きの影を特徴とする素敵なデザインがたくさんあります。Androidにこのような機能がなくても、それらを持っているのはいいことだと思いました。色付きの影がallAndroidバージョン、5.0以降でもエミュレートされることに注意することが重要です。

https://github.com/ZieIony/Carbon

次の画像とコードは、Carbonのサンプルにあります。

enter image description here

コード:

<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>
48
Zielony

API 28(パイ)の開始 View#setOutlineAmbientShadowColor(int color) および View#setOutlineSpotShadowColor(int color) は、Viewクラスで使用できます。

ビューで標高を使用する場合、両方の方法を使用して影の色を変更できます。

6
Gauthier

Shadow Layout を使用できます。 answer を確認してください。

0
user7856586