Что я хочу достичь, так это сделать градиент, чтобы эффект градиента начинался в нижней части изображения, скажем, после 80% высоты представления. Итак, я хочу, чтобы большая часть вида (80%) была покрыта startColor.Эффект начального градиента после 80% высоты сакса
Я пробовал:
<gradient
android:type="linear"
android:angle="90"
android:startColor="#70C272"
android:endColor="#F19941"
android:centerX="80%"
android:centerY="100%"
/>
Но это не похоже на работу.
EDIT:
Edit:
Использование ShapeDrawable:
ShapeDrawable.ShaderFactory sf=new ShapeDrawable.ShaderFactory() {
@Override
public Shader resize(int width, int height) {
final float DY = 60;
final float heightFraction = height * 0.8f;
return new LinearGradient(0,heightFraction-DY,0,heightFraction+DY,
// new int[] {Color.parseColor("#E44342"), Color.parseColor("#F19941")},
new int[] {Color.BLUE, Color.GREEN},
new float[]{0.5f, 1},
Shader.TileMode.REPEAT);
}
};
ShapeDrawable sd = new ShapeDrawable(new RectShape());
sd.setShaderFactory(sf);
Вы можете использовать 2 вида и их фон в LinearLayout - 1-й вид может занимать 80% веса и иметь сплошной цветной фон, 2-й - 20% вес и градиентный фон. –
@Manos, к какому взгляду вы его применяете? –
@Charu ක Это довольно сложно. Я пытаюсь применить его к LineDataSet (setFillDrawable (Drawable d); mpandroidchart. Https://github.com/PhilJay/MPAndroidChart/wiki/DataSet-classes-in-detail – Manos