後藤 浩昭(GORRY)です。
NativeActivityで「C側で作成したウィンドウ」は、Java上で普段使う
ものとは異なる、「OpenGL ESで描画できるだけのウィンドウ」では
ないでしょうか。
このウィンドウ上の画面に文字列を表示したいなら、「文字列を
テクスチャ化してOpenGL ESで描画する」のが一般的な手法です。
「文字列をテクスチャ化する」というのは、文字列を一旦
ビットマップとしてレンダリングしてから、それをテクスチャデータと
して登録することになります。
このような作業を行う場合、NDK側には文字列をレンダリングする
ためのAPIがないため、Java側でCanvas/Bitmapを使って文字列を
レンダリングしてもらう処理を作成し、それをNDK側から呼び出す
ことになります。
Javaで文字列をテクスチャへレンダリングする例は、たとえば
本MLだと[android-group-japan: 20937]のスレッドなどにあります。
In message <
137979ba-fc2a-4fc8...@googlegroups.com>
"[android-group-japan: 21959] NativeActivityを使用してシステムフォントを表示したい"
"shinya yamamoto <
shiny...@gmail.com>" wrote:
> 初めて投稿させていただきます。
> Android初心者のyamamotoです。
>
> android-ndk r8bを使用してandroidを勉強しています。
>
>
> 【希望動作】
> android-ndk/samples/native-activityのサンプルにて、システムフォントを使用し画面に文字表示を行う
>
>
> 【現状説明】
> CからJavaコードを呼び出し、setTextを使用して表示を試みているのですが、期待通りに表示されません。
>
> NativeActivityを使用せず、java側でGLSurfaceViewを作成すれば、希望動作が出来ることは確認しております。
> C側で作成したウィンドウをaddViewする方法がわかれば解決になるのかと個人的には思っているのですが・・・。
>
>
> 上記サンプル内の、engine_init_displayの終了後に、下記javaコードのCreateTextViewを呼び出しています。
>
> よろしくお願いします。
>
> //---------------------------------------------------------------------------------------------------
> // javaコード ※import類は割愛させていただきます
> public class Test extends NativeActivity
> {
> static {
> System.loadLibrary("native-activity");
> }
>
> private static Handler mHandler;
> private TextView mtv;
>
> @Override
> public void onCreate(Bundle savedInstanceState)
> {
> super.onCreate(savedInstanceState);
>
> mHandler = new Handler();
>
> mLayout = new LinearLayout(this);
> mLayout.setOrientation(LinearLayout.VERTICAL);
> setContentView(mLayout);
> }
>
> public void CreateTextView()
> {
> mHandler.post( new Runnable() {
> @Override
> public void run() {
> mtv = new TextView(getApplicationContext());
> mtv.setText("Hello World!!");
> mLayout.addView(mtv);
> return;
> }
> });
> }
> }
>
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、
android-group-j...@googlegroups.com にメールを送信します。
> このグループに投稿するには、
android-g...@googlegroups.com にメールを送信してください。
>
http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
> その他のオプションについては、
https://groups.google.com/groups/opt_out にアクセスしてください。
>
>
--
Hiroaki GOTO as "GORRY" : 後藤 浩昭
EMAIL:
gorr...@gmail.com