「Android/UIテキスト」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→改行テキスト) |
|||
| (同じ利用者による、間の2版が非表示) | |||
| 行28: | 行28: | ||
/> | /> | ||
| − | ¥nでなく\n (macだとoption | + | ¥nでなく\n (macだとoption+nで入力)でなければならない。 |
==中央寄せ== | ==中央寄せ== | ||
| 行47: | 行47: | ||
参考: | 参考: | ||
http://android49.blog.fc2.com/blog-entry-20.html | http://android49.blog.fc2.com/blog-entry-20.html | ||
| + | |||
| + | ==テキスト表示== | ||
| + | Paint paint = new Paint(); | ||
| + | paint.setColor(Color.BLUE); | ||
| + | // アンチエイリアス | ||
| + | paint.setAntiAlias(true); | ||
| + | // 文字の大きさ | ||
| + | paint.setTextSize(40); | ||
| + | // 指定した位置に文字列を描く | ||
| + | canvas.drawText("テキスト表示", 0, 0, paint); | ||
| + | |||
| + | ==テキストを傾ける(回転)== | ||
| + | // Pathに沿って文字を書く | ||
| + | paint.setColor(Color.RED); | ||
| + | Path path = new Path(); | ||
| + | path.moveTo(50, 200); | ||
| + | path.lineTo(450, 500); | ||
| + | canvas.drawTextOnPath("文字列を傾ける", path, 0, 0, paint); | ||
| + | paint.setColor(Color.GREEN); | ||
| + | |||
| + | ==テキストを傾ける(回転)メソッド化== | ||
| + | // テキスト回転描画 | ||
| + | public static void drawTextRota(Canvas canvas, String str, int x, int y, int degrees, int size) { | ||
| + | Paint paint = new Paint(); | ||
| + | // Pathに沿って文字を書く | ||
| + | paint.setColor(Color.RED); | ||
| + | // アンチエイリアス | ||
| + | paint.setAntiAlias(true); | ||
| + | // 文字の大きさ | ||
| + | paint.setTextSize(size); | ||
| + | Path path = new Path(); | ||
| + | // 文字列の幅を取得 | ||
| + | float textWidth = paint.measureText(str); | ||
| + | float rad = (float)(degrees * Math.PI / 180); | ||
| + | int x1 = (int)(- textWidth / 2 * Math.cos(rad) + x); | ||
| + | int y1 = (int)(- textWidth / 2 * Math.sin(rad) + y); | ||
| + | int x2 = (int)(textWidth / 2 * Math.cos(rad) + x); | ||
| + | int y2 = (int)(textWidth / 2 * Math.sin(rad) + y); | ||
| + | path.moveTo(x1, y1); | ||
| + | path.lineTo(x2, y2); | ||
| + | canvas.drawTextOnPath(str, path, 0, 0, paint); | ||
| + | } | ||
2019年8月22日 (木) 11:19時点における最新版
目次
テキスト書き換え
- xmlレイアウト
<TextView android:id="@+id/textView1"
android:text="@string/hello"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
- java
TextView textView1 = (TextView)findViewById(R.id.textView1);
textView1.setText("テスト");
テキストアウトライン設定
- xml
<TextView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#ffffffff"
android:shadowColor="#ff000000"
android:shadowDy="0"
android:shadowDx="0"
android:shadowRadius="4"
android:text="test"/>
改行テキスト
- xml
<TextView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="1、\nテストです\n\n2、てすとです"
android:singleLine="false"
/>
¥nでなく\n (macだとoption+nで入力)でなければならない。
中央寄せ
android:gravity="center"
フォントサイズ
android:textSize="18sp"
余白
android:paddingTop="10sp" android:paddingBottom="10sp" android:paddingLeft="10sp" android:paddingRight="10sp"
match_parentとmatch_parent
同じ意味だが、match_parentの方が推奨(android 2.2[API 8]以上)
参考: http://android49.blog.fc2.com/blog-entry-20.html
テキスト表示
Paint paint = new Paint();
paint.setColor(Color.BLUE);
// アンチエイリアス
paint.setAntiAlias(true);
// 文字の大きさ
paint.setTextSize(40);
// 指定した位置に文字列を描く
canvas.drawText("テキスト表示", 0, 0, paint);
テキストを傾ける(回転)
// Pathに沿って文字を書く
paint.setColor(Color.RED);
Path path = new Path();
path.moveTo(50, 200);
path.lineTo(450, 500);
canvas.drawTextOnPath("文字列を傾ける", path, 0, 0, paint);
paint.setColor(Color.GREEN);
テキストを傾ける(回転)メソッド化
// テキスト回転描画
public static void drawTextRota(Canvas canvas, String str, int x, int y, int degrees, int size) {
Paint paint = new Paint();
// Pathに沿って文字を書く
paint.setColor(Color.RED);
// アンチエイリアス
paint.setAntiAlias(true);
// 文字の大きさ
paint.setTextSize(size);
Path path = new Path();
// 文字列の幅を取得
float textWidth = paint.measureText(str);
float rad = (float)(degrees * Math.PI / 180);
int x1 = (int)(- textWidth / 2 * Math.cos(rad) + x);
int y1 = (int)(- textWidth / 2 * Math.sin(rad) + y);
int x2 = (int)(textWidth / 2 * Math.cos(rad) + x);
int y2 = (int)(textWidth / 2 * Math.sin(rad) + y);
path.moveTo(x1, y1);
path.lineTo(x2, y2);
canvas.drawTextOnPath(str, path, 0, 0, paint);
}
