Android でテキストに黒い線を描きたいです。
私はこの例を見てきました: Android で MapView に境界線を付けてテキストを描画するにはどうすればよいですか?
ソリューションが 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);
}
そして、ユーザーがTextEntryに必要なテキストを書き、その後ボタンをクリックすることに基づいて、TextViewのテキストコンテンツを変更するonClickListenerがあります。
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 オブジェクトを作成する必要がありますか?