• ベストアンサー

Java 仕様のカラーについて

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

  • Java
  • 回答数6
  • ありがとう数6

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

  • ベストアンサー
回答No.6

>回答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%」において動きます。

その他の回答 (5)

回答No.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&

回答No.4

>回答No.1 amanojaku1 >僕も良く分かってなかったですがパラメーターに"id"を設定していますね、 かなり前に作ったプログラムを見返してみると、(その時は)チャント分かっていたようです、完全にド忘れしていました(^_^;)

回答No.3

>回答No.1 amanojaku1 >「~.getColor(Context, R.color.orange);」 恐らく(笑)これにより、カラー値そのものが得られるのだと思われます。

回答No.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クラスのオブジェクトです(初心者にはオブジェクトの定数と言うのが いまいち分かりにくいかもしれませんが…)。

回答No.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"と言う事になります(初心者にとっては意味不明でしょうが…、そう言う仕様だと割り切って下さい)。

関連するQ&A

  • Javaの難易度 bronzeとの比較

    次の基本情報を受けます。 今から勉強します!。遅いけど。 基本情報の午後問題を表計算かJavaかで悩んでいます。 表計算の方が簡単なんですよね? エクセルならちょこちょこ使っています。 JavaはJava SE 7のbronzeを最近取りました。忘れかけていますが、、、、 bronzeレベルで対応できるならJavaで、難しいようであれば表計算にしようと思います。 回答よろしくお願いします。

  • Javaの細かい仕様を教えていただけませんか?

    ずっと前にちょろっと触ってJavaは一端離れていましたが 仕様を細かく確認してみたくなったので、駆け足で先ほどまた触れてみました。 なお、それぞれ触れた時間はだいぶ違いますが、プログラミング言語に関してはC、C++、C++/CLI、C#、HLSL、PHPは経験があります。(アセンブリはほんの少しだけ読める程度) なのでそれら(とくにC++)との比較を教えていただけると早く理解が出来そうで また、かなり多くの質問があります(だいたいは基本的なことでしょう)が、全部でなくとも、一部でもいいので教えていただけると助かります。 ためしに以下のようなコードを書いてみました。 class MySamplePrint { private static interface PrintIF { void Print(); //(1) } private static final class MyClass1<T> implements PrintIF { private final class Nest1{ private int num = 0;} private final Nest1 n = new Nest1(); //(2)、(3) private final T data; MyClass1( T data_, int num_ ){ //(4) data = data_; n.num = num_; } MyClass1( final T data_ ){ data = data_; } //(5) //MyClass1(){ this((T)0); } //(6)、(7) //(8) public void Print(){ System.out.println(data); System.out.println(n.num); } } public static void main(String[] arg){ PrintIF a = new MyClass1<Integer>(123); //(9) a.Print(); final MyClass1 b = new MyClass1("abc"); //(10) a = b; a.Print(); a = new MyClass1<String>("def",234); a.Print(); int i = 0; { //int i; //(11) int x = 0; } int x = 1; //(12) final PrintIF c = new MyClass1<String>("def",234); c.Print(); } } 結果 123 0 abc 0 def 234 def 234 (1) C++ でいうconstメンバ関数はJavaにもないですか?(可能であればvoid Print() const;のようなものを書きたい) (2)コンストラクタと、このようにメンバの宣言場所でついでに 「型 変数 = 何々;」については、どっちが先かとか明確な順番は規格上定義されているのでしょうか? (3)メンバ変数にも、このようにfinalを付け、コンストラクタ(か 「型 変数 = 何々;」)で一度だけ値を代入する、といったことが、試したら出来ましたが、これは仕様上普通に可能って事になっていますか? (4)C++でいう、int num_ = 0など、書かなかった場合それになる、というデフォルト引数というものは、Javaにもないんでしょうか?(つまり、呼び出し側で同じような書き方をしたければこのようにオーバーロードを使う?) (5)ローカル変数同様、引数にも普通にfinalを指定可能…? (6)C#ではC++の初期化子リストっぽく MyClass1() : this(何々){ } とか言う書き方になるかと思いますが、Javaでは専ら{}内にのみ記述(this(何々)だったら一行目)でしょうか? (7)この行はコメントアウトすると 「int から T へキャストすることはできません」 とエラーになります。 んでも(T)""にすると一応通ります。 String型などと整数の0(nullを意図してほしい)は互換性がないのでしょうか (8)C++やC#のoverrideのようにオーバーライドを明示的に示す方法(や、C#のnewに匹敵するものとか)はありませんか? (9)<int>はできませんでした。ジェネリックスに指定できる型にはどういう制限があるのでしょうか? (10)警告は出ましたが、<String>を省略しても通ってしまいました。これは興味本位で、実際は警告も出るので指定はすると思いますが、これは仕様ですか? (11)この場合、xは可ですがiはダメでした。つまり、CやC++と違い、スコープがより狭い範囲に変わっても「それまでに、より広いスコープで宣言されていた名前」とかぶる変数名の変数は宣言できない、ということでしょうか? (12)C++的には、このcは参照(というよりポインタに近い)と考えて、この場合finalはc自体の変更を阻止していますが、参照先の内容は変更可能に思います。 CやC++的には const PrintIF* c = ~ ではなく PrintIF* const c = ~ と同じ意味 出来れば const PrintIF* c = ~ や const PrintIF* const c = ~ といったことも可能だといいのですが、Javaでは仕様上、それは無理、でしょうか? その他、コード以外で (13)アクセス修飾子の指定を書かないと、Javaでは同一パッケージ内で参照可能、ということですが、この「パッケージ内」というのは、これはC#でいうinternalのような意味あいになる、ということでしょうか? (14)Javaでは非staticなメソッドは全て、C++でいうvirtualに自動的になる、ということでしょうか?(逆に言うと明示的な、virtualに相当する修飾子がない?) (15)Eclipseで タブが> 改行が曲がった矢印 で、全部の行に表示されるのですが テキストの色や背景色(白)の変更や、これらを非表示にする といったことは可能ですか?

    • ベストアンサー
    • Java
  • Javaアプレットの上に画像を重ねたい

    javaアプレットの上に、別の画像を重ねたいと思い、画像とjavaアプレットをそれぞれ別のlayerにいれて重ねてみたのですが、どうしてもjavaアプレットが上に来てしまいます。 z-indexで調整したのですが、ダメでした。 なにか方法をご存じでしょうか? なお、javaアプレット自体を編集する事はできません。 また「javaアプレットの上に画像は重ねられない」という仕様であればあきらめるので、ご存じでしたらお教えください。 よろしくお願いいたします。

  • javaといっても?

    いつもお世話になっております。 プログラマーになって、半年ちょっと経ちます。 主にcoldfusion、ときどきphpやaspもいじったりします。 coldfusionには拡張機能でjavaクラスを読み込めたり、javaが動作出来るようになっています。 最近、仕事でちょっとだけかじりました。 そこで今後のことも見据えて、javaを勉強したいなって思っているんですけど、どうjavaというものにとりかかっていけばいいか正直わからないです。 一口にjavaといっても、すごく広い感じがします。 jsp? サーブレット? J2SE? J2EE? EJB? … ひとつひとつの意味はgoogleで検索すれば出てきます。 が、実際のところ、javaの環境で動くということはわかるんですけど、じゃあ、なにから勉強していったらいいのかってことがわかりません。 web用のアプリを作りたいならJ2EE?それともjsp以外はどれも同じってことなんですか? まず、どういったことから勉強していったらいいかご教授いただければと思います。 ちなみにやりたいことはwebアプリ系です。ただwebアプリ系のjavaと組み込み系のjavaは違ったりするのかとか疑問だったりします。 愚問かもしれませんがどうぞよろしくお願いします。 またオススメの書籍等ありましたら教えてください、基本的には自分で本屋で読んであったコレだって思ったものを買えばいいのでしょうが、本屋にいったら、javaに関する書籍(Eclipseで作る関係のjava書籍,EJB関連の書籍,J2EE関連の書籍,…などなどどう選べばいいかわからなかったので。)

    • ベストアンサー
    • Java
  • javaの覚え方

    私はjavaの勉強をしている初心者ですが、困っていることがあります。 数冊のjavaの本を読んで、オブジェクト指向のことや、基本的な事 は理解したつもりですが、自分でプログラムを作成する際、 用意されているクラスだけを使い終わってしまうのです。 これは、本のサンプルをうちこんでいるだけなのです。 一からつくろうとしても、実際サンプルプログラムの ようになるのだからと思ってしまうのですが、どうすれば 自分で作ったと実感できるのでしょうか?

  • Javaの文字列比較

    初歩的な質問ですが、Javaで文字列比較は moji == hikaku でなくて moji.equals(hikaku)でないとダメなのでしょうか? 仕様やオブジェクト指向だからでなく、具体的な理由が知りたいです。 数年後には理解できるかもしれませんので難しくても構いません。

    • ベストアンサー
    • Java
  • COBOLの考え方からJavaへ

    今までIBMホスト畑で働いていたので、使用できる言語は COBOLやPL/Iだけでしたが、今後の仕事の展開も考え Javaを習得したいと思っています。 とりあえずJava言語の入門書を終えたので、 次は、以前新人のCOBOL研修用に作成した仕様書を Javaで書きかえてみようと思いたったのですが・・・ できませんでした。。。 COBOLは、MAINルーチンをプログラムの主とし 個々の機能(FILEのREAD処理など)をそれぞれの SUBルーチンで記述するといった構造的な作りになっています。 これをJavaにすると「FileのREAD処理」を1つのクラスとして考え、 「MAINルーチン的」な実行クラスから 「FileのREAD処理」クラスを呼ぶ(継承する)のか? オブジェクト指向とは、もっと別のことではないか? といったように、全然ちんぷんかんぷんな状況です。 みなさん、Javaでプログラムを記述するときは どういったアルゴリズムを考えながら記述しているのでしょうか? 是非ともご教授ください。 また、COBOLには、誰がソースをみてもわかりやすいように 記述するなどの暗黙的な決まり(ネストは3回程度など)があるのですが、 Javaにもあるのでしょうか?

    • ベストアンサー
    • Java
  • JavaでBtrieveを扱いたいのですが・・・

    まったくのJava初心者です。 勤務先でBtrieveファイルを使ったPOSシステムを扱っていますが、この度Javaで操作できないものかと、思いたちました。 Javaで提供されているJDBCがデータベース操作のツールだというところまではわかったのですが、どうも、Btrieveを扱えるという情報を見つけられません。JDBCは、リレーショナルDB仕様のツールなのでしょうか?あるいは、JavaからBtrieveにアクセスする方法が別にあるのでしょうか? DBに関して、ほんの聞きかじりの知識しかありませんので、質問自体がでたらめかもしれません、どうぞお許しください。

  • 同色かどうかの確認(Colorクラス)

    java.awt.Colorについて、お尋ねします。 別々のColorオブジェクトが、同じ色であるかどうか、 簡単に判定する方法はないでしょうか? 現在、赤・青・緑・アルファ値が、同じ値であるかチェックして、判定を行っていますが、 他の方法をご存知の方、同じような体験をされた方、ご教授下さい。 なければないというアドバイスでもかまいません。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • Javaのアップデート後

    以前更新を怠ったせいでウィルス感染し、以来毎日様々なものの更新を毎日数回チェックし、最新バージョンを常にダウンロードするようにしています。Javaもアップデートのコンソール?をショートカットアイコン設定し、毎日更新状態を確認していました。 ついさっき、Javaの更新があるという事で手動ですぐアップデートしました。が、なぜかダウンロード過程で失敗したらしく、インストール中に固まってしまいキャンセルしました。 案の定その後状態がわからなくなって、最新のソフトだと確認出来はしたもののまともに機能するかどうかわからなかったので一度コンパネからJavaをアンインストールしました。そののちJavaのサイトに行って「最新のJavaをインストール」から再度ダウンロードし、今度は成功、最新状態のチェックでもオーケーということで、Javaそのものの最新データインストールは成功し問題なくwebも機能しています。 が、ショートカットしていたJava Updateを立ち上げると「Java」タブで以前は出来ていた「更新の確認」が出来なくなりました。というかその項目全てがタブから消えた?状態です。再起動しても変わりません。「Java」タブで出来るのは「JavaアプリケーションとアプレットのJavaランタイム・バージョンと設定を表示および管理します」という項目とそのしたの「表示」ボタンだけです。以前は「更新の確認」ほかなんかもっとあったと思うのですがそれしか今はありません。 これだと更新の確認が出来ないので設定の不備なのかバージョンが変わった事によって仕様そのものが変わったのか、また更新の確認はこれからどうすればいいのか、詳しい方どうか教えて下さい。そもそも一度しくじったのでJavaそのものも大丈夫なのかどうかそこから自信がなくなりました。 すみませんが急いでいます。どうかお詳しい方、よろしくお願い致します。 ちなみにウィンドウズ7、Javaのバージョンは「バージョン7の更新67」です。(合ってるかな?)

専門家に質問してみよう