前提・実現したいこと
Androidのアプリで、画像の中の図形の中などの、指定の位置に文字を描画したいです。
発生している問題・エラーメッセージ
Canvasを使っているのですが、端末によって、テキストの表示される場所が異なり、画像とテキストがずれてしまいます。 機種によって、表示される画像の大きさが違うため、同じ座標でも、テキストと画像がずれるんですか? もしくは、Canvas以外の方法で、画像の中の指定の位置に文字を表示する方法は、ありますか?
該当のソースコード
java
1package com.bakenfuimg; 2 3import android.content.Context; 4import android.graphics.Bitmap; 5import android.graphics.BitmapFactory; 6import android.graphics.Canvas; 7import android.graphics.Color; 8import android.graphics.Paint; 9import android.util.AttributeSet; 10import android.view.View; 11 12public class TestCanvasView extends View { 13 private Paint paint; 14 private Boolean viewflg; 15 private Bitmap bmp = null; 16private String string1, string2,string3,string4,string5,string6; 17 18 19 20 21 public TestCanvasView(Context context, AttributeSet attrs) { 22 super(context, attrs); 23 paint = new Paint(); 24 viewflg = true; 25 bmp = BitmapFactory.decodeResource(getResources(), R.drawable.flat); 26 } 27 28 29public void drawText(String string11, String string22, String string33, String string44, String string55, String string66){ 30 //Log.d("checkk",string); 31 32 string1 = string11; 33 string2 = string22; 34 string3 = string33; 35 string4 = string44; 36 string5 = string55; 37 string6 = string66; 38 39} 40 41 42 @Override 43 protected void onDraw(Canvas canvas) { 44 45 46 // Bitmap 画像を表示 47 canvas.drawBitmap(bmp, 0f, 100f, paint); 48 49 // Textの表示 50 51 paint.setStyle(Paint.Style.FILL_AND_STROKE); 52 paint.setStrokeWidth(5); 53 paint.setColor(Color.argb(240, 7, 3, 4)); 54 55 paint.setTextSize(50); 56 canvas.drawText(string1, 100f, 500f, paint); 57 58 paint.setTextSize(100); 59 canvas.drawText(string2, 100f, 500f, paint); 60 61 } 62}
試したこと
canvasの大きさなどを変えてみましたが、変わりませんでした。
回答1件
あなたの回答
tips
プレビュー