gpt4 book ai didi

Android 以编程方式描边

转载 作者:行者123 更新时间:2023-11-30 04:11:19 25 4
gpt4 key购买 nike

我想在 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,我可以根据用户在 TextEntry 中写入他/她想要的文本并随后单击按钮来更改 TextView 的文本内容。

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 对象吗?

最佳答案

为 TextView 中呈现的文本获取阴影的最简单方法是设置样式,如 this answer 中所述。 .这需要很少的工作,并且听起来它在您的情况下会很好地工作。

使用您链接到的技术涉及扩展现有的 View 类、覆盖 onDraw() 以及在传递给 onDraw() 的 Canvas 上使用 Canvas.drawText() 来自己呈现文本。在某些情况下,这可能正是您所需要的,但对于您当前的情况来说,这听起来有点矫枉过正。如果您想进一步研究,the Android dev guide on the subject是一本好书。

关于Android 以编程方式描边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10824871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com