20

誰もがアンドロイドで上から下にグラデーション効果を表示する方法を教えることができます。誰もが例を提供できますか

ありがとう

4

4 に答える 4

60

dawableフォルダーにxmlファイルを作成します。gradient_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient 
        android:startColor="#000" 
        android:endColor="#fff"
        android:angle="90"
     />
</shape>

の背景として設定しますView

android:background="@drawable/gradient_bg"

また

setBackgroundResource(R.drawable.gradient_bg);
于 2012-04-10T07:46:14.740 に答える
8
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <gradient

        android:angle="90"
        android:type="linear"
        android:startColor="#FFFFFF"
        android:endColor="#000000" />

</shape>

ここで、角度を270開始色に設定すると、開始色が下部に表示され、終了色を上部に設定すると、角度90が反転します。

于 2012-04-10T07:47:21.567 に答える
1

カスタムビューを使用してこれを行うことができます。このソリューションを使用すると、プロジェクトのすべての色のグラデーション形状が完成します。

class GradientView(context: Context, attrs: AttributeSet) : View(context, attrs) {

    // Properties
    private val paint: Paint = Paint()
    private val rect = Rect()

    //region Attributes
    var start: Int = Color.WHITE
    var end: Int = Color.WHITE
    //endregion

    override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
        super.onSizeChanged(w, h, oldw, oldh)
        // Update Size
        val usableWidth = width - (paddingLeft + paddingRight)
        val usableHeight = height - (paddingTop + paddingBottom)
        rect.right = usableWidth
        rect.bottom = usableHeight
        // Update Color
        paint.shader = LinearGradient(0f, height.toFloat(), 0f, 0f,
                start, end, Shader.TileMode.CLAMP)
        // ReDraw
        invalidate()
    }

    override fun onDraw(canvas: Canvas) {
        super.onDraw(canvas)
        canvas.drawRect(rect, paint)
    }

}

また、次のカスタムビューを使用してオープンソースプロジェクトGradientViewを作成します。

https://github.com/lopspower/GradientView

implementation 'com.mikhaellopez:gradientview:1.1.0'
于 2019-08-23T08:54:27.380 に答える
0

透明なAndroidで上から下へのグラデーション効果を表示するには:

  1. res / drawableフォルダーにgradient_transparent.xmlという名前の新しいXMLファイルを作成し、次のコードを追加します。

  <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <gradient
            android:startColor="#90000000"
            android:endColor="#00ffffff"
            android:angle="90"
            />
    </shape>

XMLレイアウトファイル内

<LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_alignParentBottom="true"
                    android:background="@drawable/gradient_transparent"
                    android:orientation="vertical"
                    android:padding="@dimen/spacing_middle">
</LinearLayout>
于 2016-07-22T01:18:19.653 に答える