5-5 文字列の描画 (1)基本的な文字列描画 A.手順

Slides:



Advertisements
Similar presentations
5-7 音声の再生 (1)テキストスピーチ A. 手順 音声による英文のスピーチ ・ Android 1.6 以降の実機で可能。 ・ Android では英語であれば エミュレータで可能。それ以前は実機のみ。 ・機種によっては音声がインストールされていない場合があるので、 Android.
Advertisements

オブジェクト指向 言語 論 第八回 知能情報学部 新田直也. 多相性(最も単純な例) class A { void m() { System.out.println( “ this is class A ” ); } } class A1 extends A { void m() { System.out.println(
8-4 Google マップの利用 1.地図を表示 ( エミュレータでも可能 ) Android API キーを取得しておくこと。 【 AndroidManifest.xml 】 ・・・
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
社会人学習講座 「Javaプログラミング概論」
GridLayout オブジェクト(省略)
         第9回 Swing.
創造工学設計I 電子情報工学科4年(前期) 12回目 (09/07/2015) 担当 古山彰一 ac
Copyright by Rich & Giro
4月卒研報告              上藤紳也.
5-4 画像の表示 (1)複数画像の表示 A.手順 (基本は5-2(1)Image View参照) ①画像ファイルをリソースに追加
創造工学設計I 電子情報工学科4年(前期) 8回目 (04/6/2015) 担当 古山彰一 ac
Imageの描画 画像を読み込んで表示すること。 import java.awt.*;が必要。
Applet 岡部 祐典 鈴木 敬幸.
GPSはじめの第一歩 Android編 2009/03/28 山本 慎也.
5-3 図形の描画 (1)図形を表示する手順 ①実画面に表示するクラスを作成する。
6-2 データベース 1.SQLite SQLを単純化した SQLite を使ってデータベースを操作 表「fruit」
8-2 センサ関係 1.センサの種類 種類センサの内容 TYPE_ACCELEROMETER 加速度センサ TYPE_MAGNETIC_FIELD 地磁気センサ TYPE_PROXIMITY 近接センサ TYPE_TEMPATURE 温度センサ TYPE_LIGHT 照明センサ TYPE_GRAVITY.
オブジェクト指向言語 第12回 アプレット.
Iアプリプログラミング その1  鳥居秀徳.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
独習Java ・ 10.6  Hashtableクラス ・ 10.7  String Tokenizerクラス  12月12日    小笠原 一恵.
CGプログラミング論 平成28年4月27日 森田 彦.
プログラミングIII演習 第1回目.
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
第20章 Flyweight ~同じものを共有して無駄をなくす~
4.Eclipseの基本操作 4-1 Eclipseの起動
プログラミング演習3 第2回 GUIの復習.
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
グラフィックス、その1 色の表示 フォントを変えて文字を表示 直線、四角形、楕円形の描画 円弧の描画 多角形の描画
プログラミング演習3 第3回 ミニプロジェクト.
Java入門 13.5カラーの使用 13.6テキストの表示                  2003/12/12                   紺野憲一.
アルゴリズムとプログラミング (Algorithms and Programming)
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
プログラミング演習3 第3回 ミニプロジェクト.
TCanvas BCB:TCanvasクラスでグラフィックを扱う。 TFormなどもプロパティとして持っている。
第11週:super/subクラス、継承性、メソッド再定義
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
暗号技術 ~JAVAプログラム①~ (5週目)
ソフトウェア制作論 平成30年12月5日.
プログラミング演習3 第2回 GUIの復習.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
演習1 : インターフェイスを使ってみよう 「10人の客(乗用車、バイク、ストーブのいずれかランダムに決定)に1~100(L)の給油をするガソリンスタンドをシミュレートする実行クラス : RefuelSimulation」を作成する。給油の際には、どの種類の客が何リットル給油したか出力すること。 実行結果例.
7.4 intanceof 演算子 7.5~7.9パッケージ 2003/11/28 紺野憲一
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
プログラミング基礎a 第12回 Java言語による図形処理入門(3) アニメーション入門
プログラミング基礎a 第11回 Java言語による図形処理入門(3) アニメーション入門
ソフトウェア制作論 平成30年11月21日.
パッケージ,アクセス修飾子 2008年4月27日 海谷 治彦.
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
計算機プログラミングI 第5回 配列 文字列(Stringクラス) mainの引数 配列の利用例
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
C#プログラミング実習 第3回.
計算機プログラミングI 第3回 プリミティブ値 クラスメソッド クラス変数 式と演算 変数の利用
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
5-2 基本的なウィジェット (1)Toggle Button A. 配置
7.アプリケーションの連携 7-1 インテント(intent) 1.アプリケーションの連携とは
7-3 サービスの連携 1.サービスとは 画面を持たずに処理を行う【AndroidManifest.xmlへの追加】 …
5.基本API 5-1 レイアウト ウィジェットの並べ方を指定するには、 パレットのレイアウト(Layoutでは以下の8種類)を配置する。
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
5-6 SurfaceView による高速描画 (1)SurfaceViewを使う A. SurfaceView とは
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

5-5 文字列の描画 (1)基本的な文字列描画 A.手順 5-5 文字列の描画 (1)基本的な文字列描画 A.手順 通常の図形と同様、ペンオブジェクトを生成・設定し、 drawText メソッドで描画する。 ペンオブジェクトで、文字サイズ(setTextSize)を設定したり、 文字幅を測る(measureText)ことができる。

B. 関連するクラス 【Paint クラス】 void setAntialias(boolean a) 文字やラインを滑らかに見せる処理を行うどうかを a で指定する。 void setTextSize(float s) 文字サイズ(s)の指定 void setColor(int c) 文字色(c)の指定 float measureText(String text) 文字列の幅 float ascent() ベースラインより上の高さ float decent() ベースラインより下の高さ 【Color クラス】 static int rgb RGBによる色の指定 (int r,int g, int b)  r:赤、g:緑、b:青 static int argb 透明度とRGBによる色の指定 (int a,int r,int g, int b)  a:透明度、r:赤、g:緑、b:青 【View クラス】 int getWidth() 画面の幅 int getHeight() 画面の高さ

C. プログラム例(1) package jp.eclipse.string; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.Window; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; public class StringActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(new StringView(this)); } class StringView extends View{ public StringView(Context context) { super(context); C. プログラム例(1)

プログラム例(2) protected void onDraw(Canvas c){ setBackgroundColor(Color.WHITE); // 描画オブジェクト生成 Paint p=new Paint(); p.setAntiAlias(true); // 文字サイズと文字色 p.setTextSize(20); p.setColor(Color.rgb(255, 0, 0)); // 画面サイズ c.drawText("画面サイズ : "+getWidth()+"×"+getWidth(), 0, 50, p); // 文字幅 c.drawText("文字幅 : "+(int)p.measureText("A"),0, 50*2, p); // アセント・ディセント c.drawText("アセント : "+(int)p.ascent(),0, 50*3, p); c.drawText("ディセント : "+(int)p.descent(),0, 50*4, p); // 文字サイズ12 p.setTextSize(12); p.setColor(Color.rgb(0, 128, 0)); c.drawText("12ドット文字", 0, 50*5, p); // 文字サイズ24 p.setTextSize(24); p.setColor(Color.rgb(0, 0, 255)); c.drawText("24ドット文字", 0, 50*6, p); }

D. 実行例 指定した文字列が描画されている。 (Java 1.6で動かすこと)

(1)文字列の回転 A.手順 図形の回転と同じようにキャンバスの座標軸を回転する。

B. 関連するクラス 【Paint クラス】 void setAntialias(boolean a) 文字やラインを滑らかに見せる処理を行うどうかを a で指定する。 void setTextSize(float s) 文字サイズ(s)の指定 void setColor(int c) 文字色(c)の指定 float measureText(String text) 文字列の幅 float ascent() ベースラインより上の高さ float decent() ベースラインより下の高さ 【Color クラス】 static int rgb RGBによる色の指定 (int r,int g, int b)  r:赤、g:緑、b:青 static int argb 透明度とRGBによる色の指定 (int a,int r,int g, int b)  a:透明度、r:赤、g:緑、b:青 【View クラス】 int getWidth() 画面の幅 int getHeight() 画面の高さ

B. プログラム例(1) package jp.eclipse.StrRot; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.Window; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; public class StrRotActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(new StringView(this)); }

プログラム例(2) class StringView extends View{ public StringView(Context context) { super(context); } protected void onDraw(Canvas c){ super.onDraw(c); setBackgroundColor(Color.WHITE); int w = c.getWidth();int h = c.getHeight(); int wd = w / 2; int hd = h / 2; Paint p=new Paint(); p.setAntiAlias(true); p.setTextSize(20); p.setColor(Color.rgb(0, 0, 255)); c.translate(wd, hd); for(int i = 0; i < 8; i++){ c.rotate(45f); c.drawText(" 文字列の回転", 0, 0, p);

D. 実行例 回転した文字列が表示されている。 なお、文字列の先頭は重ならないよう 全角の空白にしてある。 (Java 1.6で動かすこと)