【发布时间】:2012-05-30 22:00:22
【问题描述】:
我想在 Android 中的文本上画一个黑色的描边。
我看过这个例子: How do you draw text with a border on a MapView in 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 android-canvas textview