Android программно инсульт

1

Я хочу нарисовать черный штрих на моем тексте в Android.

Я видел этот пример: как вы рисуете текст с рамкой на MapView в Android?

Где решение переопределяет onDraw() для создания штриха.

Проблема в том, что я по-прежнему относительно устарел на Android, и я понятия не имею, как перейти к использованию этого решения.

В моем onCreate я устанавливаю текстовый шрифт (он настраивается):

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeatures();

    // Set content view and component listeners
    setContentView(R.layout.meme_maker);
    setListeners();

    context = this;

    Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/Impact.ttf");
    TextView mmt = (TextView) findViewById(R.id.meme_maker_title);
    TextView ttc = (TextView) findViewById(R.id.top_text_canvas);
    TextView tbc = (TextView) findViewById(R.id.bottom_text_canvas);

    ttc.setTypeface(tf);
    tbc.setTypeface(tf);
    mmt.setTypeface(tf);
}

И у меня есть onClickListener, где я меняю текстовое содержимое TextView на основе пользователя, который пишет текст, который он хочет в TextEntry, и затем нажимает кнопку.

ImageView ii = (ImageView) findViewById(R.id.insert_image);
    ii.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            EditText tt = (EditText) findViewById(R.id.top_text_text);
            EditText bt = (EditText) findViewById(R.id.bottom_text_text);

            TextView ttc = (TextView) findViewById(R.id.top_text_canvas);
            TextView btc = (TextView) findViewById(R.id.bottom_text_canvas);

            ttc.setText(tt.getText().toString().toUpperCase());
            btc.setText(bt.getText().toString().toUpperCase());
        }
    });

До сих пор это довольно просто. Мой вопрос: как вставить штрих текста? Где? Нужно ли создавать объекты Canvas и Paint?

спасибо

Теги:
android-textview
android-canvas

1 ответ

1
Лучший ответ

Самый простой способ получить тень для текста, отображаемого в TextView, - это создать стиль, описанный в этом ответе. Это требует очень небольшой работы и звучит так, как будто это будет хорошо работать в вашей ситуации.

Используя метод, к которому вы ссылаетесь, включает расширение существующего класса View, переопределение onDraw() и использование Canvas.drawText() на холсте, переданном onDraw(), для визуализации текста самостоятельно. Это может быть именно то, что вам нужно в некоторых ситуациях, но звучит как излишний для вашей текущей ситуации. Если вы хотите заглянуть в нее дальше, руководство Android dev по этому вопросу хорошо читается.

  • 0
    Это то, что я искал. Границы тени было недостаточно, так как она недостаточно темная. Поэтому мне нужен был штрих, и я увидел пример переопределения onDraw. Но я не знал, как использовать. Читая ваш комментарий, я теперь знаю, что мне нужно создать собственное представление. Вот и все. Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню