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

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

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

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

2092閲覧

Java: setColorメソッドとsetAntiAliasメソッドが使えず困っています。

hacchan

総合スコア14

Java

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2018/05/19 04:15

前提・実現したいこと

Android Studioで簡単なゲームアプリを作っています。
本を写経している段階の超初心者です。

画面に表示させるアイテムを、
CanvasクラスのdrawCircleメソッドで描画することになったのですが、
Paintクラスのオブジェクトに、
setColorメソッドとsetAntiAliasメソッドが使えず困っています。

発生している問題・エラーメッセージ

下記コードの
setColorとsetAntiAliasの部分が赤字になり、
エラーメッセージは「cannnot resolve symbol 'setColor'('setAntiAlias')」です。

また、(Color.RED)の部分に赤波線が付き、
エラーメッセージは「Unkown class 'Color.RED'」です。

該当のソースコード

言語:Java

//省略
import android.graphics.Color;
import android.graphics.Paint;

class GameView extends View {
//省略
Paint energyPaint = new Paint();
//省略
energyPaint.setColor(Color.RED);
energyPaint.setAntiAlias(true);
//省略
}
//省略
canvas.drawCircle(energyX, energyY, 10, energyPaint);

試したこと

自分で解決策を検索したのですが、どうしてもわかりませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

勘ですけど・・・

setColor/setAntiAliasメソッドがあるとかないとかという話ではなくて文法が間違っていないでしょうか?同じエラーになるかわかりませんが、例えば以下のように書くとコンパイルエラーになるのは確実です。

java

1import android.graphics.Color; 2import android.graphics.Paint; 3 4class GameView extends View { 5 Paint energyPaint = new Paint(); 6 7 energyPaint.setColor(Color.RED); // (A) 8 energyPaint.setAntiAlias(true); // (A) 9 10 void foo() { 11 energyPaint.setColor(Color.RED); // (B) 12 energyPaint.setAntiAlias(true); // (B) 13 } 14}

(A)(B)は文法的に「文(Statement)」と呼ばれますが、
(B)のようにメソッドの本体になら書けます。
しかし(A)のようにクラスの直下には書けません。

質問文で省略されている部分に何かの問題があるのではないかと思いました。

投稿2018/05/19 05:26

KSwordOfHaste

総合スコア18394

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

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

hacchan

2018/05/19 06:12

解決しました! わかりやすく教えていただきありがとうございました。 よく見たところおっしゃるとおり、GameViewクラスのメソッド内に書くべきだったのに、勝手にメソッド外に書いていたためエラーになっていました。メソッド内に書いたところ、正常に動きました。 本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問