質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

2回答

1546閲覧

DisplaySizeが取得できません

pip_gip

総合スコア12

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2017/02/28 11:34

Android 初心者です、宜しくお願い致します。

画像の表示、ディスプレイサイズ、画像のサイズを取得する簡単な
プログラムです。

画像は表示されますが、ディスプレイサイズ、画像のサイズは表示
されずにエラーが出ます。

エラーの原因も意味もわかりません、
Androidに詳しい方、なにとど宜しくお願い致しまします。

import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;

//スライドパズル
public class PuzzleGame extends Activity
{
//アクティビティ起動時に呼ばれる
@Override
public void onCreate( Bundle bundle )
{
super.onCreate( bundle ) ;
Util.setActivity( this ) ;

//フルスクリーンの指定 getWindow().clearFlags( WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN ) ; getWindow().addFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN ) ; requestWindowFeature( Window.FEATURE_NO_TITLE ) ; //ビューの追加 setContentView( new PuzzleView( this ) ) ; } class PuzzleView extends View { //イメージ private Bitmap imgBg ; //背景 private Bitmap imgFrame ; //フレーム private Bitmap imgPic ; //絵 private Bitmap imgTitle ; //タイトル private Bitmap imgTap ; //タップ private Bitmap imgClear ; //クリア Resources resources ; Bitmap image ; Paint paint ; Activity act ; //コンストラクタ public PuzzleView( Activity activity ) { super( activity ) ; //イメージの読み込み resources = getResources(); image = BitmapFactory.decodeResource( resources, R.drawable.bg ) ; DisplayMetrics dm = new DisplayMetrics() ; activity.getWindowManager().getDefaultDisplay().getMetrics( dm ) ; int winW = dm.widthPixels ; int winH = dm.heightPixels ; System.out.println( "winW = " + winW ) ; System.out.println( "winH = " + winH ) ; } // 画像のサイズを取得するメソッド public String getSize( Context context , int resource_name ) { // リソースからbitmapを作成 Bitmap image = BitmapFactory.decodeResource( context.getResources() , resource_name ) ; // 画像サイズ取得 int width = image.getWidth() ; int height = image.getHeight() ; System.out.println( "Image_W = " + width ) ; System.out.println( "Image_H = " + height ) ; // 画像サイズの文字列を返す String size = "w:" + width + ",h:" + height; System.out.println( "Size = " + size ) ; return size; } protected void onDraw( Canvas canvas ) { super.onDraw( canvas ) ; canvas.drawBitmap( image , 0 , 0 , paint ) ; } }

}


02-28 04:43:25.438 1199-1199/? I/art: Not late-enabling -Xcheck:jni (already on)
02-28 04:43:25.440 1199-1199/? W/art: Unexpected CPU variant for X86 using defaults: x86_64
02-28 04:43:25.617 1199-1199/net.npaka.puzzlegame W/System: ClassLoader referenced unknown path: /data/app/net.npaka.puzzlegame-2/lib/x86_64
02-28 04:43:25.914 1199-1199/net.npaka.puzzlegame I/System.out: winW = 1080
02-28 04:43:25.914 1199-1199/net.npaka.puzzlegame I/System.out: winH = 1794
02-28 04:43:27.654 1199-1247/net.npaka.puzzlegame I/OpenGLRenderer: Initialized EGL, version 1.4
02-28 04:43:27.654 1199-1247/net.npaka.puzzlegame D/OpenGLRenderer: Swap behavior 1
02-28 04:43:27.878 1199-1247/net.npaka.puzzlegame E/EGL_emulation: tid 1247: eglSurfaceAttrib(1178): error 0x3009 (EGL_BAD_MATCH)
02-28 04:43:27.878 1199-1247/net.npaka.puzzlegame W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x79c038e0da80, error=EGL_BAD_MATCH
02-28 04:46:22.056 1199-1204/net.npaka.puzzlegame W/art: Suspending all threads took: 9.719ms

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

コードが分かりにくいです
というか、本人が混乱状態にあるのでは
このコードを見てそう思います

ディスプレイサイズ、画像のサイズは表示

ログに出ています
System.out: winW = 1080
System.out: winH = 1794

// 画像のサイズを取得するメソッド
public String getSize( Context context , int resource_name )

これは呼ばれている箇所が無いので
画像のサイズは出てこないのは当然

あるいはどこかで呼んでいるのかな?

投稿2017/02/28 13:34

aja

総合スコア3733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pip_gip

2017/02/28 14:11

yonaさん、回答有難う御座います。 # public String getSize( Context context , int resource_name )   ・・・メソッドの中の      System.out.println( "Image_W = " + width ) ; System.out.println( "Image_H = " + height ) ;   ・・・・・・ System.out.println( "Size = " + size ) ; がアウトプットされた箇所がありません。 一体何が原因でしょうか、宜しくお願いします。 ----------------------------------------------------------------------- public String getSize( Context context , int resource_name ) { // リソースからbitmapを作成 Bitmap image = BitmapFactory.decodeResource( context.getResources() , resource_name ) ; // 画像サイズ取得 int width = image.getWidth() ; int height = image.getHeight() ; System.out.println( "Image_W = " + width ) ; System.out.println( "Image_H = " + height ) ; // 画像サイズの文字列を返す String size = "w:" + width + ",h:" + height; System.out.println( "Size = " + size ) ; return size; } ------------------------------------------------------------
aja

2017/02/28 14:49

質問するときに ちゃんと説明を読みましょう ###該当のソースコード ```ここに言語を入力 ここにご自身が実行したソースコードを書いてください ``` 例えば ```Java import android.app.Activity; ... ``` と書けばよかったですね このコメントでは使えませんので最初の質問欄です それから、クラスは分けて分かりやすいようにしてください 何より、自分自身が理解しやすいはずです >一体何が原因でしょうか、宜しくお願いします。 >これは呼ばれている箇所が無いので とお答えしたのですが... どこにも使われていないということです メソッドの使い方が分からない?でしょうか? それにこの命名は良くありません APIでgetSize(Point outSize)というのがありますから他の人が見ると間違えるかもしれません https://developer.android.com/reference/android/view/Display.html#getSize(android.graphics.Point)
guest

0

このコードはどこまで動いていたんでしょうか?

とりあえずsetContentViewを削除して動かしてください。

また、コードはコード用の記述に修正してください。

投稿2017/02/28 12:52

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pip_gip

2017/02/28 13:31

yonaさん、回答有難う御座います。 >とりあえずsetContentViewを削除して動かしてください。 #setContentViewを削除しました。 >また、コードはコード用の記述に修正してください。 #「コード用の記述」の意味が不明ですが、修正後のコードを掲載します。 -------------------------------------------------------------------------------- import android.app.Activity; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.View; import android.view.Window; import android.view.WindowManager; //スライドパズル public class PuzzleGame extends Activity { //アクティビティ起動時に呼ばれる @Override public void onCreate( Bundle bundle ) { super.onCreate( bundle ) ; Util.setActivity( this ) ; //フルスクリーンの指定 getWindow().clearFlags( WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN ) ; getWindow().addFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN ) ; requestWindowFeature( Window.FEATURE_NO_TITLE ) ; //ビューの追加 // setContentView( new PuzzleView( this ) ) ; } class PuzzleView extends View { //イメージ private Bitmap imgBg ; //背景 Resources resources ; Bitmap image ; Paint paint ; Activity act ; //コンストラクタ public PuzzleView( Activity activity ) { super( activity ) ; //イメージの読み込み resources = getResources(); image = BitmapFactory.decodeResource( resources, R.drawable.bg ) ; DisplayMetrics dm = new DisplayMetrics() ; activity.getWindowManager().getDefaultDisplay().getMetrics( dm ) ; int winW = dm.widthPixels ; int winH = dm.heightPixels ; System.out.println( "winW = " + winW ) ; System.out.println( "winH = " + winH ) ; } // 画像のサイズを取得するメソッド public String getSize( Context context , int resource_name ) { // リソースからbitmapを作成 Bitmap image = BitmapFactory.decodeResource( context.getResources() , resource_name ) ; // 画像サイズ取得 int width = image.getWidth() ; int height = image.getHeight() ; System.out.println( "Image_W = " + width ) ; System.out.println( "Image_H = " + height ) ; // 画像サイズの文字列を返す String size = "w:" + width + ",h:" + height; System.out.println( "Size = " + size ) ; return size; } protected void onDraw( Canvas canvas ) { super.onDraw( canvas ) ; canvas.drawBitmap( image , 0 , 0 , paint ) ; } } } ---------------------------------------------------------- 02-28 06:43:17.808 8722-8722/? I/art: Not late-enabling -Xcheck:jni (already on) 02-28 06:43:17.809 8722-8722/? W/art: Unexpected CPU variant for X86 using defaults: x86_64 02-28 06:43:18.042 8722-8722/net.npaka.puzzlegame W/System: ClassLoader referenced unknown path: /data/app/net.npaka.puzzlegame-1/lib/x86_64 02-28 06:43:19.878 8722-8761/net.npaka.puzzlegame I/OpenGLRenderer: Initialized EGL, version 1.4 02-28 06:43:19.878 8722-8761/net.npaka.puzzlegame D/OpenGLRenderer: Swap behavior 1 02-28 06:43:20.137 8722-8761/net.npaka.puzzlegame E/EGL_emulation: tid 8761: eglSurfaceAttrib(1178): error 0x3009 (EGL_BAD_MATCH) 02-28 06:43:20.138 8722-8761/net.npaka.puzzlegame W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x79c038e0d880, error=EGL_BAD_MATCH ----------------------------------------------------------------------
pip_gip

2017/02/28 13:34

yonaさん、回答有難う御座います。 >とりあえずsetContentViewを削除して動かしてください。 #コードのエラーはありませんが、イメージが表示されなくなりました。
yona

2017/02/28 14:43

他の質問のコードを見てください、表示が違いますよね?ヘルプを見てから編集を行なってください。 また、アプリが強制終了するのか、何も起きないのでは大きく意味が違います、どちらですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問