Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中创建具有渐变的平行线图像?_Android_Android Layout_Android Drawable - Fatal编程技术网

如何在Android中创建具有渐变的平行线图像?

如何在Android中创建具有渐变的平行线图像?,android,android-layout,android-drawable,Android,Android Layout,Android Drawable,我正在尝试使用android drawables创建以下设计 我想我可以循环创建线条,然后覆盖某种渐变层 我怎样才能有效地进行这种绘图 试试这个定制的可绘图: class D extends Drawable { private Paint mPaint; public D() { mPaint = new Paint(); } @Override protected void onBoundsChange(Rect bounds)

我正在尝试使用android drawables创建以下设计

我想我可以循环创建线条,然后覆盖某种渐变层


我怎样才能有效地进行这种绘图

试试这个定制的可绘图:

class D extends Drawable {
    private Paint mPaint;

    public D() {
        mPaint = new Paint();
    }

    @Override
    protected void onBoundsChange(Rect bounds) {
        Bitmap lines = BitmapFactory.decodeResource(getResources(), R.drawable.lines);
        Shader shaderA = new BitmapShader(lines, TileMode.REPEAT, TileMode.REPEAT);
        Shader shaderB = new LinearGradient(bounds.left, bounds.top, bounds.right, bounds.bottom, Color.BLUE, Color.RED, TileMode.REPEAT);
        ComposeShader cs = new ComposeShader(shaderA, shaderB, Mode.SRC_IN);
        mPaint.setShader(cs);
    }

    @Override
    public void draw(Canvas canvas) {
        canvas.drawPaint(mPaint);
    }

    @Override
    public void setAlpha(int alpha) {
    }

    @Override
    public void setColorFilter(ColorFilter cf) {
    }

    @Override
    public int getOpacity() {
        return PixelFormat.TRANSLUCENT;
    }
}

其中res/drawable/lines.png如下所示:

显示您的triedI我不确定从何处开始。@Vidia这是您想要的吗?顺便说一句,您可以在shaderA中使用垂直线并调用setLocalMatrix和旋转矩阵以获得相同的效果,这样您就可以进行动态旋转