может кто-нибудь сказать Как рассеять эффект градиента сверху вниз в android. может ли кто-нибудь представить пример
Спасибо
может кто-нибудь сказать Как рассеять эффект градиента сверху вниз в android. может ли кто-нибудь представить пример
Спасибо
сделайте xml файл в названии вашей Dawable папки, как 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);
<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
, он будет изменен на обратную сторону
Чтобы отобразить эффект градиента сверху вниз в android с прозрачным:
.
<?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>
Вы можете использовать пользовательский вид для этого. С помощью этого решения он завершил градиентные формы всех цветов в ваших проектах:
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'