Android開発
Flutterでは数多くのプラグインを利用することで様々な機能を容易に実装することができます。しかし、プラグインの機能が少しでも物足りない場合、カスタマイズする必要があります。プラグインはソースコードも含めて自動的にダウンロードされて利用すること…
StatefulWidgetの派生クラスを作成するのが面倒だなと思い、下記の「神技」を発見しました。 かなり感動したのですが、その数分後にさらに神技を発見しました。。。 Android Studioには「Live Template」という機能があり、登録済みのキーワードを入力し、必…
StatefulWidgetを新規作成するのが面倒だったが、神技を見つけた!
コンテナ内にテキストを配置し、その領域をタップすると編集画面を表示できるようにしたいと思いますが、タップできることを表現できるように「>」アイコンを配置しよう。と思います。 Row( children: [ Text("めもめもめも", style: TextStyle( color: Col…
テキストの背景を画面の横幅最大に設定したいのですが。。。(現在背景が青の部分です) Container( padding: EdgeInsets.all(10), color: Colors.blueAccent, child: Text( "めもめもめも",style: TextStyle(color: Colors.black,fontSize: 20)) ) 「alignm…
Canvasにテキストを描画したいのですが、適当に書いたらエラーになりました。。。 TextSpan span = new TextSpan(text: 'テキスト'); TextPainter tp = new TextPainter(text: span, textAlign: TextAlign.left); tp.layout(); tp.paint(canvas, new Offset(…
Realmを使ったデータベース管理の勉強を始めました。 教科書に載っているとおりにコーディングし、実行したところ、見たこともないエラーに遭遇しました。 C:\User\Projects\KotlinFirstStep\MyScheduler\app\build\generated\source\kapt\debug\io\realm\**…
「はじめてのAndroidプログラミング」でフラグメントの勉強中です。現在、第8章の「フラグメントを使ったスライドショーアプリ」に取り組み中。はじめてのAndroidプログラミング 第4版作者:金田 浩明発売日: 2019/04/20メディア: Kindle版 class MainActivi…
「はじめてのAndroidプログラミング」でフラグメントの勉強中です。現在、第7章の「フラグメントで動物ずかんを作ろう」に取り組み中。はじめてのAndroidプログラミング 第4版作者:金田 浩明発売日: 2019/04/20メディア: Kindle版ActivityからFragmentから…
Kotlinでは基本的には「null」をあまり意識する必要がありません。 逆に、明示的に「null」を設定してしまうと、 Null can not be a value of a non-null type Int null非許容型のIntにnullにすることはできません のようなエラーになります。コード fun mai…
エルビス演算子、初めて聞くワードです。「?:」が、その「エルビス演算子」になります。内容 Kotlinでは値にnullを利用可能な「null許容型」という変数を定義することができます。 「null許容型」の変数は、型に「?」を加えることで宣言できます。 null許容…
EditTextを使った文字入力を持った画面を表示した場合、そのEditTextに入力フォーカスがあたり、ソフトウェアキーボード(IME)が自動的に起動します。入力前提の画面であればその挙動が良いのですが、「既存のデータを閲覧し、必要であれば編集する」というよ…
派生クラスで親クラスのメソッドをオーバーライドします。内容 メソッドをオーバーライドする際にはメソッドに"override"を付加します。また、派生元のクラスメソッドは"open"である必要があります。"open"がないと、”final and cannot be overridden”エラー…
作成したクラスから派生クラスを作成します。内容 Personクラスの派生クラスとしてAdultクラスを作成します。 AdultクラスではmTypeを上書きします。 Kotlinでは通常はクラスを派生させることができませんが、"open"を付加することで、クラスを派生させるこ…
クラスの定義の基本形です。コード class Person(val mName: String, val mAge: Int) { } fun main(args: Array<String>) { val p = Person("田中はじめ",45) println( p.mName ) println( p.mAge ) } 結果 田中はじめ 45クラスの初期処理はinit内で行うことができま</string>…
関数の定義は次のように書きます。内容 fun 関数名 ( 引数名 : 型名 ) : 戻り値の型名 { return 戻り値 } コード fun sub( a : Int ) : String{ var ret : String if( a > 0 ){ ret = "正の数" }else if( a < 0 ){ ret = "負の数" } else{ ret = "0" } retur…
「Expecting a top level declaration」というコンパイルエラーがでて悩んでしまいました。問題はただの、「{」忘れでした。。。。数十分費やしてしまいました。まだまだですねぇ。。。
do-while文を利用した繰り返し処理は次のように書きます。内容 iが0から9まで繰り返す。コード fun main(args: Array<String>) { var i = 0 do{ println(i) i++ }while( i < 10 ) } 結果 0 1 2 3 4 5 6 7 8 9</string>
while文を利用した繰り返し処理は次のように書きます。内容 iが0から9まで繰り返す。コード fun main(args: Array<String>) { var i = 0 while( i < 10 ){ println(i) i++ } } 結果 0 1 2 3 4 5 6 7 8 9</string>
繰り返し処理を行うにはfor文を利用します。 C言語では、 for( int i=0;i のように書いていたfor文の繰り返し処理は次のように書きます。内容 iが0から9まで繰り返す。コード fun main(args: Array<String>) { for(i in 0..9){ println(i) } } 結果 0 1 2 3 4 5 6 7 8</string>…
Androidアプリの開発をしていますが、今後のAndroid開発は『Kotlin』が主流になります。Javaより扱いやすくなるということですが、これまでずっとJavaを使っていたため、なかなか移行する機会がありませんでしたが、やっと重い腰を上げてKotlinの習得に取り…
アプリ内で端末内の写真の一覧を表示する際、写真が多いと非常に時間がかかります。 また、最近の端末の写真は高解像度なので、ファイルサイズも大きくなり、1枚当たりの処理時間もかかります。 撮影した写真は通常JPEGで保存されますが、そのデータ内にExi…
ファイルをバックアップ・復元するために、複数のファイルを圧縮・解凍する機能が必要です。 便利なオープンソースがあるので、そちらを活用します。github.com簡単な使い方はこのような感じです。 public class ZipUtils { Context mContext; public ZipUti…
アプリ内での利用するデータファイルの形式としてJSONが多いですね。 各種サービスのWeb APIなどで取得するデータの形式にもJSONが使われていることが多いです。JSONObjectに読み込んだデータから指定のデータを取得する際、JSONObject.getString() や、 JSO…
アプリで利用しているデータをバックアップし、機種変更時に復元するような機能を入れたい。アプリのデータの保存はおおむね、以下の3種類です。 1) プレファレンス 2) データベース(SQLite) 3) 各種データファイル 各種ファイルのバックアップ 1) プレファ…
撮影した写真から必要な個所だけを切り抜きたい場合は、外部アプリのトリミング機能を利用すると便利です。 // uri: 写真のUri private void showTrimImage( Uri uri ){ Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndTy…
アプリからカメラアプリを起動して、撮影した写真を取り込むにはIntentを利用します。しかし、カメラアプリを起動し、撮影を終了すると、アプリも終了し、元のアプリに戻ってしまいます。カメラで撮影した写真を連続で取り込むには、カメラアプリでの撮影後…
最近のAndroid端末でよく、スクショをとると、通知バーに通知が来て、タップすると、そのスクショ写真を表示することができ、共有機能などを使って、メールに添付したりすることができますね。そんな機能をアプリに入れたいと思いました。 スクショした写真…
Bitmapオブジェクトを指定パスにPNGファイルとして保存します。 static public boolean saveAsPngImage(Bitmap bmp, String strPath){ try { File file = new File(strPath); FileOutputStream outStream = new FileOutputStream(file); bmp.compress(Bitmap…