首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android编程的Stroke

Android编程的Stroke
EN

Stack Overflow用户
提问于 2012-05-31 06:00:22
回答 1查看 2.4K关注 0票数 1

我想在我的Android文本上画一个黑色的笔画。

我见过这个例子:How do you draw text with a border on a MapView in Android?

其中解决方案覆盖onDraw()以创建笔划。

问题是,我在Android方面还处于起步阶段,我不知道如何过渡到使用这种解决方案。

在我的onCreate中,我设置了文本字体(它是自定义的):

代码语言:javascript
复制
@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中编写他/她想要的文本,然后单击按钮。

代码语言:javascript
复制
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());
        }
    });

到目前为止,这是非常简单的。我的问题是:如何插入文本的笔画?哪里?我需要创建画布和绘制对象吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-31 07:15:52

要获得在TextView中呈现的文本的阴影,最简单的方法是按照this answer中所述设置样式。这只需要很少的工作,而且听起来在你的情况下会很好地工作。

使用链接到的技术涉及到扩展现有的View类、覆盖onDraw(),以及在传递给onDraw()的画布上使用Canvas.drawText()来自己呈现文本。在某些情况下,这正是您需要的,但对于您当前的情况来说,这听起来有点过头了。如果你想进一步了解它,the Android dev guide on the subject是一个很好的读物。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10824871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档