Android "Продвинутые" градиенты - позиции большого пальца?
Я пытаюсь создать градиент для рисования, чтобы изобразить соотношение чего-либо. В качестве общего примера, скажем, вы просматривали список, содержащий парк автомобилей. Фон может быть указателем уровня топлива - я не хочу плавного, широкого перехода. Я хочу очень плотный переход, и я хочу иметь возможность установить, где этот переход происходит.
Вот на что я смотрю, но не очень далеко.
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#D2E3D3"
android:endColor="#E6E6E3"
android:angle="0"
/>
<corners android:radius="0dp" />
</shape>
Спасибо!
1 ответ
Хорошо, вот как вы можете это сделать:
ShapeDrawable.ShaderFactory sf = new ShapeDrawable.ShaderFactory() {
@Override
public Shader resize(int width, int height) {
LinearGradient lg = new LinearGradient(0, 0, width, height,
new int[]{Color.GREEN, Color.GREEN, Color.WHITE, Color.WHITE},
new float[]{0,0.5f,.55f,1}, Shader.TileMode.REPEAT);
return lg;
}
};
PaintDrawable p=new PaintDrawable();
p.setShape(new RectShape());
p.setShaderFactory(sf);
Затем просто установите это как ваш backroundDrawable