Я уверен, что это имеет какое-то отношение к необходимости использования символа побега или чего-то еще, но я не могу понять это. Когда я пытаюсь нарисовать +5 на моем холсте, знак + никогда не появляется - я вижу 5.
Кто-нибудь знает способ нарисовать на холсте специальные символы?
Спасибо!
Вот код, который компилируется, но не показывает "+":
private void doDraw(Canvas canvas) {
//other misc canvas.draw(...) calls
canvas.drawText("+5", xPos, yPos, bonusScorePaint);
}
Очевидно,
canvas.drawText("\+5", xPos, yPos, bonusScorePaint);
не является допустимой escape-последовательностью, поэтому она не компилируется.
Оказывается, это был мой TypeFace. Не знаю, почему, я использую пользовательский шрифт, но знак + существует в этом шрифте.
Вы ответили на свой вопрос. Да, вам нужно "\" перед "+".
Как Конрад Рудольф сказал, попробуйте \\+
Вот код, который у меня есть:
ImageView img = (ImageView)findViewById(R.id.img);
Bitmap bmp = Bitmap.createBitmap(400, 400, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bmp);
Paint p = new Paint();
p.setColor(Color.WHITE);
c.drawText("+5", 20, 20, p);
img.setImageBitmap(bmp);
Мои единственные мысли в том, что это может быть цвет вашего объекта краски или положение объекта.
+
как специальный символ, вам понадобятся две обратные косые черты, чтобы избежать его, так как одна обратная косая черта является escape-последовательностью Java и, конечно, Java не распознает\+
поэтому он освобождается. Попробуйте\\+
.