こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Java 仕様のカラーについて

Javaとandroid Javaの比較について
「基本的な仕様のカラーがJavaはオブジェクト、Android Javaは整数になっている」という事を小耳に挟み少し調べてみて有益な情報にたどり着けなかったのですが
分かる方がいらっしゃいましたら御教授願います。

簡潔で結構です。

投稿日時 - 2017-04-04 11:46:00

QNo.9313221

暇なときに回答ください

質問者が選んだベストアンサー

>回答No.5 amanojaku1

Android Tetraz 017
http://ashtarte.hotcom-web.com/utf8/smt.cgi?r+sara/&bid+0000004B&tsn+0000004B&

>(2ページ目)[Phone and Tablet][Minimum SDK]:[API 10:Android 2.3.3]と設定

なぜ[Minimum SDK]を[API 10:Android 2.3.3]に設定しているかと言うと、下記が その理由です。

新規プロジェクト作成で(2ページ目)[Phone and Tablet][Minimum SDK]で(以前はMinimum SDK]は[API 8:Android 2.2]に設定できたが)[API 9:Android 2.3]以降のみ設定可能になったようです(あくまで現時点において)。
(高度な機能が必要ない限り)基本的に[Minimum SDK]は[API 10:Android 2.3.3]で良いでしょう。
(あくまで現時点においてですが)[Minimum SDK]を[API 10:Android 2.3.3]に設定すると、その下の方に下記のようなメッセージが表示されます(「Web 翻訳」による翻訳を編集したモノであり、正確な翻訳ではありません)。

> By targeting API level 10 and later, your app will run on approximately 100.0% of the devices that are active on Google Play Store.

《翻訳》

「APIレベル10及び その後(のAPIレベル)」がターゲットにされます、あなたのアプリは、「Google Play Store」においてアクティブなデバイスの「約100.0%」において動きます。

投稿日時 - 2017-04-04 20:47:16

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.5

>回答No.4 amanojaku1

>かなり前に作ったプログラムを見返してみると

ちなみに、その かなり前に作ったプログラムとは下記です。

Android Tetraz 017
http://ashtarte.hotcom-web.com/utf8/smt.cgi?r+sara/&bid+0000004B&tsn+0000004B&bts+2016/08/22%2001%3A01%3A08&

投稿日時 - 2017-04-04 20:17:25

ANo.4

>回答No.1 amanojaku1

>僕も良く分かってなかったですがパラメーターに"id"を設定していますね、

かなり前に作ったプログラムを見返してみると、(その時は)チャント分かっていたようです、完全にド忘れしていました(^_^;)

投稿日時 - 2017-04-04 20:13:03

ANo.3

>回答No.1 amanojaku1

>「~.getColor(Context, R.color.orange);」

恐らく(笑)これにより、カラー値そのものが得られるのだと思われます。

投稿日時 - 2017-04-04 19:02:15

ANo.2

>回答No.1 amanojaku1

>●(スタンダードな)JavaのColorオブジェクト

>色の指定
>https://www.javadrive.jp/applet/graphics/index3.html

>>Color.black 黒を表します
>>Color.blue 青を表します
>>Color.cyan シアンを表します
>>Color.darkGray ダークグレイを表します
>>Color.gray グレイを表します
>>Color.green 緑を表します
>>Color.lightGray ライトグレイを表します
>>Color.magenta マゼンタを表します
>>Color.orange オレンジを表します
>>Color.pink ピンクを表します
>>Color.red 赤を表します
>>Color.white 白を表します
>>Color.yellow 黄を表します

>上記は(スタンダードな)Javaに設定されているColor"定数"です。

このColor"定数"はColorクラスのオブジェクトの"定数"です(Colorクラスをオブジェクト化した"定数"です)。
つまり、この定数はColorクラスのオブジェクトです(初心者にはオブジェクトの定数と言うのが いまいち分かりにくいかもしれませんが…)。

投稿日時 - 2017-04-04 18:54:06

ANo.1

>「基本的な仕様のカラーがJavaはオブジェクト、Android Javaは整数になっている」という事を小耳に挟み少し調べてみて有益な情報にたどり着けなかったのですが

下記のようなレベルまでは無理でも(と言っても簡略な説明ですが)、チャント検索すればカラーは「(スタンダードな)JavaのColorオブジェクト、Android Javaは整数」ぐらいは検索できるはずですが…。

●(スタンダードな)JavaのColorオブジェクト

色の指定
https://www.javadrive.jp/applet/graphics/index3.html

>Color.black 黒を表します
>Color.blue 青を表します
>Color.cyan シアンを表します
>Color.darkGray ダークグレイを表します
>Color.gray グレイを表します
>Color.green 緑を表します
>Color.lightGray ライトグレイを表します
>Color.magenta マゼンタを表します
>Color.orange オレンジを表します
>Color.pink ピンクを表します
>Color.red 赤を表します
>Color.white 白を表します
>Color.yellow 黄を表します

上記は(スタンダードな)Javaに設定されているColor"定数"です。

クラス Color
http://docs.oracle.com/javase/jp/7/api/java/awt/Color.html

>Color(ColorSpace cspace, float[] components, float alpha)
>float 配列で指定された色成分と指定されたアルファを使用して、指定された ColorSpace 内に色を作成します。
>Color(float r, float g, float b)
>範囲 (0.0 - 1.0) の指定された赤、緑、青の値を使って、不透明な sRGB カラーを生成します。
>Color(float r, float g, float b, float a)
>範囲 (0.0 - 1.0) の指定された赤、緑、青、およびアルファ値を使って sRGB カラーを生成します。
>Color(int rgb)
>ビット 16-23 の赤色成分、ビット 8-15 の緑色成分、およびビット 0-7 の青色成分から合成された、指定された RGB 値を使って、不透明な sRGB カラーを生成します。
>Color(int rgba, boolean hasalpha)
>ビット 24 - 31 のアルファ成分、ビット 16 - 23 の赤色成分、ビット 8 - 15 の緑色成分、およびビット 0 - 7 の青色成分で構成される、指定された RGBA 値を持つ、sRGB カラーを生成します。
>Color(int r, int g, int b)
>範囲 (0 - 255) の指定された赤、緑、青の値を使って、不透明な sRGB カラーを生成します。
>Color(int r, int g, int b, int a)
>範囲 (0 - 255) の指定された赤、緑、青、およびアルファ値を使って sRGB カラーを生成します。

上記は(スタンダードな)Javaにおいてプログラマーがカラーを設定したい場合のColorコンストラクターです(ColorSpaceは良く分かれませんが)。


●Android JavaのColor

Android開発 getColor(int id) deprecated on Android 6.0 Marshmallow (android sdk 23)
http://edywrite.blogspot.jp/2015/10/android-getcolorint-id-deprecated-on.html

>public static final int getColor(Context context, int id)

これを見て分かるようにカラーは整数です。
Contextは「OSシステム、アプリケーション、アクティビティー」の どれかを設定します。
僕も良く分かってなかったですがパラメーターに"id"を設定していますね、これはカラー値そのもの ではなく、(Androidプログラムでは定番の)定数に一意の"id"が割り振られています。
例えば「res→values→colors.xml」ファイル内に下記のように「orange」を定義したとします。

><resources>
><color name="orange">#ffa500</color>
>~

「~.getColor(Context, R.color.orange);」と言う命令文が有ったとして、(colors.xmlファイル内ではカラー値そのものを定義していますが)「R.color.orange」定数自体は(カラー値そのものではなく)コンパイラーによって割り振られた一意の"id"と言う事になります(初心者にとっては意味不明でしょうが…、そう言う仕様だと割り切って下さい)。

投稿日時 - 2017-04-04 18:45:19