カテゴリーアーカイブ Java

asaba 著者:asaba

【android Java】初心者向け・Linearlayoutの使い方

今日は、androidstudioのレイアウトについて気づいたことを備忘録に残したいと思います。

今回はLinearlayoutの使い方をメインに綴ります。

お題の主役であるLinearLayoutは、ある部品を等しく一直線に並べたいと思ったときによく用いられます。Layoutの中でも最も使用頻度が高く汎用性のあるレイアウトといっていいでしょう。htmlでいうdivの役割と似ていますね。

使い方は、シンプルで一直線に並べたい部品を中に囲むだけ。下記のように書くだけです。

例えば、ボタン三つを横一列で中心に表示したい時は
android:orientation="horizontal"
android:layout_gravity="center"

と<Linearlayout内でプロパティを決めます。
Designタグを見て下記のようになっていれば成功です。

これだけならすごく簡単ですね。

複数の部品を決まった場所にそれぞれ配置したいとなってくるとRalativelayoutを使う必要がありますが、簡単なアプリを作ってみたいというかたはまずはLinearlayoutから触ってみてください。他にもTablelayoutやGridlayoutなど様々な特徴を持ったレイアウトがありますが、使う機会があったらまたやんわりと紹介していきたいと思います。

 

 

  • この記事いいね! (0)
asaba 著者:asaba

【android Java】document already exists at the specified project location

また新規プロジェクトを作る時のネタになります。

最近あるアプリを作りたくて新しくemptyのアクティビティを作った時のお話です。かなり初歩的なエラーを踏んでしまい、その戒めを込めて綴っていきます。

その時のエラー時の画像です。

黄色い三角マークで、document already exists at the specified project locationと表記されているエラー。これは新しくプロジェクトを作る時に、ディレクトリのフォルダ名を明記していないときに起こります。

後ろに/(スラッシュ)とフォルダ名(何でもいい)をつければ正常にプロジェクトが出来上がります。いじるところは赤く囲ってあるところだけ。

原因は、document直下でgradleやideaなどがまとまったフォルダにないと後にビルドするときに見つけることができずnot foundになってしまうためです。

新しいプロジェクトを作る時は、必ずひとまとめにできるようにディレクトリ作成時にフォルダを付け足してあげましょう。

 

  • この記事いいね! (0)
asaba 著者:asaba

【androidJava】firebaseを使ったアプリをビルドしたらcould not find any versionで怒られた話

cordovaを使ったアプリをAndroidStudioでビルドしたらあるエラーにはまったので備忘録として残します。

早速ですが、下にあるのがGradle内で吐いたエラーです。ログを見るとエラー1って書いてあるのになにやらごちゃごちゃしていてdependencyのクラスパスが使えないとか色々書いてあってどれから見たらいいか分からないくらいダラダラ出てきました。

スタックオーバーフローによればfirebaseのバージョンがどこを探しても見つからない、合わないよというエラーのようです。

そういう時はbuild.gradle(android側)で、リポジトリを追加するコードを書き加えてあげましょう。

repositoriesスコープ内のjcenter()の上あたりで大丈夫です。

maven {
url "https://maven.google.com"
}

原因ははっきり分からなかったのですが、さっき追記したリポジトリがなかったのでfirebase自体が無いとみなされていたということでしょうか・・・

ざっくりとした解説ですが自分はこれで無事ビルドできました。同じような記事を探したのですが、国内での事例が少なくまともなサイトがなかったのでしぶしぶスタックオーバーフローで探しました。gitもそうですが英語ができると開発だけでなくエラーにも正確に対応できるしで活躍の幅が格段に広がりますよね。筆者も英語はからっきしなのでよく海外のサイトを頑張って読んだりして耐性をつけております。それでは。

P.S.参考にしたページのリンクです!->https://stackoverflow.com/questions/50815960/could-not-find-any-version-that-matches-com-google-firebasefirebase-iid16-0-0

 

 

 

  • この記事いいね! (0)
asaba 著者:asaba

【android java】アーバンなUIを提供してくれるBootstrap

android版ライブラリbootstrapを試しに使ってみたので、今日はそのダウンロード方法や踏みつけたエラーを備忘録として残します。

アプリを作る時は、どうせならスタイリッシュなUIにしたいですよね。bootstrapは、twitter社生まれのcssフレームワークです。数あるフレームワークの中でも特に多彩なバリエーションのUIを揃えており、多くの企業がアプリやwebサイトを作るのに採用しています。そんなbootstrapは元々webアプリ向けに開発されましたが、androidでも一式用意されているので使ってみました。

導入方法ですが、まずgitからhttps://github.com/Bearded-Hen/Android-BootstrapREADME.md に説明が記載されているのでそれに沿って進めます。build.gradle(Module.app)内のdependenciesの中に下記のコードを加えます。

implementation 'com.beardedhen:androidbootstrap:2.3.2'

2.3.2はbootstrapのバージョンを指しているので、現在のバージョンに合わせて書いてください。余談ですが、自分は上記のコードをproject:〇〇〇というgradleファイルに書いてしまったためandroidstudioに怒られてしまいました。

なので、もう片方のapp:〇〇〇というgradleファイルに書いてください。

よく見るとファイル下に書いてありましたね・・・ここには書くなって・・・はい。

<pre>// NOTE: Do not place your application dependencies here; the belong
// in the individual module build.gradle files</pre>

次に、MainActivityと同じフォルダ内にTestBootstrapというアクティビティを新しく作ります。

package com.example.swift0910.myapplication;


import android.app.Application;

import com.beardedhen.androidbootstrap.TypefaceProvider;

// Applicationを継承
public class TestBootstrap extends Application {
    @Override public void onCreate() {
        super.onCreate();
        TypefaceProvider.registerDefaultIconSets();
    }
}

 

Applicationを継承するクラスのコードを書いたら、次にAndroidManifestに以下のコードを追加します。

android:name=".TestBootstrap"

以上で設定は完了になります。デザインはhttps://akira-watson.com/android/android-bootstrap-library.htmlのnyanさんのが一番しっくりきたので参考にさせていただきました。xmlコードや機能も載っているので、使いこなしたいという方は色々いじってみると本質がわかってくるかもしれません。

ライブラリって記載されているコード全部をコピーしてandroid studio内のローカルフォルダに入れていると思っていたので、まさかこんな簡単にダウンロードできるとは思っていませんでした。

  • この記事いいね! (0)
asaba 著者:asaba

文字化け系エラーをつぶしてみよう

terapadとその周りを整理していたらたまたま文字化けtipsを見つけたので今回はその文字化けの修正方法と原因を投稿します。


public class sample{

private String str = "Hello";

public static void main(String... args){
sample s = new sample();
s.show(",world");
}

public void show(String str){
System.out.println(this.str + str);
}
}

terapadを開いて適当に上記のコードを書いてコンパイルをすると


?サソpublic class sample{

のっけから文字化けしてますね。プログラミングでterapad使っている人ってあまり見たことないですが一応載せておきます。

ウィンドゥー>オプションー>文字コードでSHIFT-JISをUTF-8Nに変更してください。これで治ります、絶対。

こいつはterapadをインストールした後に初期設定で何らかの節でSHIFT-JISにしてしまったときに出てくるので、設定したら使う前に一回閉じてから開いて使ってください。

あと、terapadで作ったファイルをcordwriterなどの他のエディタで開いても出てくるので極力他のエディタで開かないようにしてくださいね。

terapadでコーディングしている人、特に入門中の方はいきなりこんな分かりにくいエラーを見るとやる気が失せてしまいますので忘れずに上記の設定を済ませてしまいましょう。それでは!

 

  • この記事いいね! (0)
asaba 著者:asaba

画面タッチ無効化について

アプリを操作中にあるダイアログが出ているときに画面を操作できてしまうと

ダイアログが閉じてしまい進捗が分からなくなるので、アプリのユーザーを不安にさせてしまいます。

 

ダイアログ表示中に画面タッチを無効化したいときは

 

下記のメソッド を使います。

 

  imageDownloadDialog.setCanceledOnTouchOutside(false);
 

アプリのダウンロード中やデータの保存中はプログレスバーを用いて進行具合を表しますが

この処理中に画面を触ってバーが消えてしまうと、ダウンロードが何%進んでいるか分からなくなってしまい

ユーザーの視覚的にも印象が良くないので、処理をしているコードの中にこのメソッドを突っ込んで画面タッチを無効化しましょう。

 

自分は良く使っているアプリのレビューを見ていますが、起動時の挙動に対してはシビアな評価がかなり多いです。

 

アプリを開発する側の立場として、入りから好印象を持たせてユーザーに長く使ってもらえるようなアプリを目標に

これからも細かいtipsを見つけて載せていきたいと思います。

 

 

 

 

 

  • この記事いいね! (0)
asaba 著者:asaba

Handlerクラスtips

今日は処理を遅延させるコードを紹介します。

 

アプリのデザインに合わせて決められたタイミングで

処理をしたいなって思う時があると思います。

そんな時はhandlerクラスのpostDelayedメソッドを呼びましょう。

 

 

上の画像のようにHandlerインスタンスを生成した後に

run関数のスコープ内に遅延させたい処理を書きます。

これだけ。

{}外の700は、0.7秒後にrun内の処理をしますよという意味になります。

複雑な計算の処理は時間がかかりがちなので

このHandlerクラスを使って処理をさせましょう。

非同期通信の際にも応用されている非常にメジャーな技法なので

これからandroidアプリを開発をする!という人はぜひとも抑えておきたいですね。

 

  • この記事いいね! (0)
takahashi 著者:takahashi

JDKの無料配布はJava 10が最後となり、11以降は有償化される模様

“30億のデバイスで走るJava”という宣伝ができるぐらい、今やITの世界で欠かせなくなったJava。
そんな Javaですが、いままで開発ツールのOracleJDKは無料で公開されており、だれでも利用することができました。

ところがこのOracleJDK、少し前にJava11から有償化されることが決まりました。

Oracleが無償でJDKを提供するのは「Java 10」が最後、Java 11以降はOSSコミュニティでのサポートに – スラド

Java 11からは、現在のようにOracle公式サイトからダウンロードできる形ではなくなり、有償契約した人のみ入手することができるようになります。

その代わり、オープンソース版であるOpenJDKに対し、現OracleJDKが備えている機能と同等のものが公式に導入されることになっているようで、機能面ではOracleJDKとOpenJDKは同等になるため、OpenJDKを使用すれば今後も無料で使い続けられるようです。

ではOracleJDKとOpenJDKの大きな違いは何かというと、Oracle公式によるサポート、さらにはサポート期間の違いのようです。

OpenJDKのサポート期限は次のリリースまで、となっていますが、OracleJDKについては3年ごとにリリースから8年間サポートされるLTS版が出されるようです。

Oracle Javaの無償配布終了で何が起こるのか? – セカイノカタチ

“Oracle JDK有償化”と聞くと、「なんてこった…」と一瞬思ってしまいますが、ふたを開けてみたところ、かなりユーザーにとってメリットとなる変更のようですね。

  • この記事いいね! (1)