トップページ > 記事閲覧
Android版:画面解像度取得について
名前:海海月 日時: 2017/10/30 00:03

いつもお世話になっております。 Android版の画面サイズの取得についてお聞きしたいことが有ります。 画面サイズ取得関数「GetAndroidDisplayResolution」があると思うのですが、 この関数は、「DxLib_Init()」実行後にしか使用できないのでしょうか? 「DxLib_Init()」前に使用すると、X、Y両方共0が返却され、「DxLib_Init()」後に 使用すると、正常にサイズが返却されます。 「DxLib_Init()」実行前に画面解像度を取得したいのですが、方法または 用意されている関数などあるでしょうか? 実行環境は、VisualStudio 2017、Windows 7(64bit版)、エミュレータ(x86)環境で 実行しています。
メンテ

Page: 1 |

Re: Android版:画面解像度取得について ( No.1 )
名前:管理人 日時:2017/10/30 02:15

> 画面サイズ取得関数「GetAndroidDisplayResolution」があると思うのですが、 > この関数は、「DxLib_Init()」実行後にしか使用できないのでしょうか? はい > 「DxLib_Init()」実行前に画面解像度を取得したいのですが、方法または > 用意されている関数などあるでしょうか? ありません DxLib_Init 内の初期化の過程で得られる情報なので、DxLib_Init 呼び出し前に取得することは出来ません… DxLib_Init の後での取得では何か不都合があるのでしょうか? ( DxLib_Init の前に SetGraphMode で解像度を決定できないと言う不便はありますが…  ただ、DxLib_Init の後でも SetGraphMode を使用することはできます )
メンテ
Re: Android版:画面解像度取得について ( No.2 )
名前:海海月(解決) 日時:2017/11/03 15:55

ご回答ありがとうございます。 やりたかったことは、事前にサイズを確認しSetGraphModeでサイズを渡したかったのですが、 DxLib_Init以降でも、SetGraphModeが使用できるとのことですのでこの方法でやろうと思います。 (x86環境(エミュレータ)、ARM環境(実機)で設定をイロイロいじって環境が壊れたようなので、 確認には少し時間がかかるかと思いますが・・・・)
メンテ
Re: Android版:画面解像度取得について ( No.3 )
名前:海海月 日時:2017/11/03 17:04

一度、解決を入れたのですが環境修復で確認できたため、再度質問をさせてください。 エミュレータは768x1280が最大サイズで、画像はPNG形式の768x1280のものを使用しました。 (01) 両方コメント  「GetAndroidDisplayResolution」の結果は、768、1280となるのですが  描画領域は、縦も横も足りておらず画像がかけた表示となりました。  (デフォルト値のサイズで描画領域が設定されるため?) (02) 「DxLib_Init」後の「SetGraphMode」のみコメント  「GetAndroidDisplayResolution」の結果は、768、1280となり、  画像もすべて表示され、描画領域も最大となっています。 (03) 「DxLib_Init」前の「SetGraphMode」のみコメント  「GetAndroidDisplayResolution」の結果は、768、1280とですが、  文字も、画像も表示されませんでした。(文字が表示されていた部分は■となってます)  (本来は、「GetAndroidDisplayResolution」で取得した値を設定する予定です) (02)と(03)を同じ結果にするためには、他に何か処理が必要なのでしょうか? お忙しいとは思いますが、ご教授お願いします。 int android_main(void) { int sample, w, h; // SetGraphMode(768, 1280, 32); if (DxLib_Init() == -1) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } GetAndroidDisplayResolution(&w, &h); // SetGraphMode(768, 1280, 32); sample = LoadGraph( "sample.png" ) ; DrawGraph(0, 0, sample, TRUE); DrawFormatString(10, 10, GetColor(0, 0, 0), "Display:% 4d/ % 4d", w, h); WaitKey(); // キー入力待ち DxLib_End(); // DXライブラリ使用の終了処理 return 0; // ソフトの終了 }
メンテ
Re: Android版:画面解像度取得について ( No.4 )
名前:管理人 日時:2017/11/03 22:25

すみません、DxLib_Init 呼び出し後に SetGraphMode を使用した場合に 以降の描画処理が正常に動作しない状態になっていました 修正版をアップしましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.exe // Android版 ARM用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.exe // Android版 x86用
メンテ
Re: Android版:画面解像度取得について ( No.5 )
名前:海海月(解決) 日時:2017/11/04 15:37

修正版、問題なく動作することを確認いたしました。 ご対応ありがとうございました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存