Целью является создание составной формы и добавление эффекта тиснения. Я могу успешно создать форму, как показано ниже.Как создать несколько фигур и добавить тиснение?
woodPaint = new Paint();
woodPaint.setAntiAlias(true);
woodBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.wood);
woodShader = new BitmapShader(woodBitmap, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
woodPaint.setShader(woodShader);
...
@Override
protected void onDraw(Canvas canvas) {
canvas.drawCircle(handleX, radius, radius, woodPaint);
canvas.drawRoundRect(baseRectF, 25, 25, woodPaint);
super.onDraw(canvas);
}
Изображение:
Затем я добавляю EmbossMaskFilter
paintEmboss = new EmbossMaskFilter(new float[] { 1, 1, 1 }, 0.1f, 8f, 5f);
woodPaint.setMaskFilter(paintEmboss);
Изображение:
Как вы можете видеть, маска выбивать применяется к двум форм в отдельности. Как я могу составить фигуры вместе и применить тиснение ко всему объекту? Я пробовал установить режим xfer на какой-то вкус от портер-даффа, но это не влияет на то, что маска для тиснения применяется к каждой форме отдельно.
Спасибо за помощь!
Редактировать: Как показано на рисунке Orabîg, вы должны нарисовать один путь с краской, на которой вы установили фильтр для тиснения. ПРИМЕЧАНИЕ. Метод setMaskFilter() является одним из нескольких методов, которые не работают при включении аппаратного ускорения. Я решил проблему, с которой я столкнулся с телефоном, работающим с желеобразным компонентом, отключив аппаратное ускорение для этой активности. Вы можете отключить аппаратное ускорение в любом level вы выбираете:
- Применения
- активности
- Окна
- Посмотреть
Ура!
В настоящее время я не на ПК, но это точный ответ, который я искал. Спасибо! –
Я обнаружил, что мне нужно было подключить каждую коробку с помощью lineTo(). Исправив это, я обнаружил, что мой эффект тиснения не применяется к пути, который я нарисовал. Я дважды проверял, чтобы убедиться, что я вызываю canvas.drawPath (thePath, woodPaint) с объектом woodPaint, у которого установлен фильтр маски для тиснения. Есть идеи? Являются ли пути обработаны по-разному, что формирует? –
Я добавил к своему вопросу, чтобы показать, как я преодолел проблемы аппаратного ускорения. Еще раз спасибо! –