Пользовательский рисунок/изображение кисти для Android

У меня есть изображение 8x8. (растровое изображение - можно изменить)

Что я хочу сделать, так это иметь возможность рисовать форму, учитывая объект Path и Paint на моем SurfaceView.

На данный момент все, что я могу сделать, это заполнить форму сплошным цветом. Как я могу нарисовать это с рисунком.

Пример

На изображении вы можете видеть рисунок кисти (крест). Это может быть что угодно, от креста до бублика или эльфа.

Как бы я рисовал фон этого узора.

Я также в конечном итоге хочу применить к нему цвета.

До сих пор моя теория заключалась в том, чтобы создать область отсечения фигуры и замостить растровые изображения до тех пор, пока область не будет покрыта, но это слишком избыточно при обработке. И идеального звука.

Что касается цвета, я могу отредактировать кисти в альфа-канале, заполнить их фоновым цветом, а затем нарисовать изображения поверх. Настоящая проблема заключается в мозаике таких шаблонов.

Я нашел несколько вопросов аналогичного характера, все без ответа и/или не применимые к моей ситуации. (использование xmls в представлениях и т. д.)


person IAmGroot    schedule 09.11.2012    source источник


Ответы (1)


Вы проверили этот блог? . Он использует BitmapShader.

Пример:

    //Initialize the bitmap object by loading an image from the resources folder  
    fillBMP = BitmapFactory.decodeResource(m_context.getResources(), R.drawable.cross);  
    //Initialize the BitmapShader with the Bitmap object and set the texture tile mode  
    fillBMPshader = new BitmapShader(fillBMP, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);  

    fillPaint.setStyle(Paint.Style.FILL);  
    //Assign the 'fillBMPshader' to this paint  
    fillPaint.setShader(fillBMPshader);  

    //Draw the fill of any shape you want, using the paint object.
    canvas.drawCircle(posX, posY, 100, fillPaint);
person Sandeep Manne    schedule 09.11.2012
comment
Любое предложение относительно проблемы с производительностью? Поскольку вы быстро рисуете растровые изображения на холсте, это приведет к тяжелому пользовательскому интерфейсу. Вызывает очень низкую производительность. - person Prokash Sarkar; 27.08.2016