GridView、グリッドビューに入れた画像が綺麗にならない、バラバラになる

みんな大好きグリッドビュー。

こうやって使いまっさ。ImageAdapterは独自のもの。そこに、context imageUrlListを渡します。

しかし、GridView、文字をいれるだけだと楽勝であるのだが、ネットから画像をよみこんでいれるとなるときっついのだ。それぞれの大きさがバラバラになったりして泣きそうになるのだ。他のサイトではすごく簡単にやり遂げているが。

ここで、

// 画像のサイズをここで固定
imageView.setMinimumWidth(300);
imageView.setMinimumHeight(200);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);

これが必要だった。setScaleTypeはおこのみで。

クリックイベントにも注目。

setUrlを使ってurlをイベントリスナー内に入れ込んでいる。イベントに値を渡す方法。少し凝ったことをしたいなら必要になってくるだろう。

BASIC認証は使わないだろうからはずしてもいいじゃろう。

Activity、Intentのことについて(いろんなオプション)

こちらを参考にして、
intent.setFlagsメソッドの引数について

画面を遷移するときなどにこれを渡せばいいらしい。使い方は以下のような、

あとタスクに関係するのであればマニフェストの、

android:launchMode=”singleTask”

なども考慮するといいかもしれない。

また一つ賢くなったね!!

アラートダイアログの外側を押せないようにする

アラートダイアログの外側を押せないようにする、ダイアログは便利ですが外側を押しても反応しちゃう。

そこで

こんな感じで、アラートダイアログを宣言して

こうすればいいですね。

builder.create().show(); の create() はわけわかめ。なんだろうか、こいつは。

ボタンとかを薄くするためには(透明化)

alphaを指定する。

AlphaAnimationをつかって指定。

自分的Volleyの定番コード

自分的Volleyの定番コード

CustomRequestクラスを作成して以下の文章でvolley使う。例文はPOSTを使用する場合です。

イテレーターを使わないとJSONが解析できないことに気がついた

JSONでキーがあらかじめわかっていれば、使うのは簡単だった。

でもキーがわからないときはどうすればいいのか?

以下のとおり。

下がミソじゃの

Googleスプレッドシートを利用したGASのAPIを誰でも使えるようにする

Googleスプレッドシートを利用したGASのAPIを誰でも使えるようにしたかったんだけど、なかなか難しい。

解決策として、スプレッドシート内で作成したものを公開するのではなく、

Googleドライブ上に

スクリーンショット 2016-03-09 18.11.37

みたいな感じでスクリプトファイル自体を作成できるようにして、そこで新たにスクリプトを書く。

そのスクリプトをウェブアプリケーションとして公開!とやると、簡単に行けた。

どこからでもアクセスできるAPIができました。

Googleスプレッドシートは、スマホからでも簡単に更新できるため、かなりの利用幅が効くようになると思います。

Javaでマッチング、正規表現のとき、$1 $2 とか使いたいじゃん

こうすると result に$1が入るよ。つまり、

^(.*?)(.png)$

の最初の括弧の

(.*?)

にマッチした部分がゲットできるってことね。

photoUrl = “hogehoge.png”;

だったら、

hogehoge

がとれるってことだよん。

google スプレッドシートを利用してJSONをAPIで発行

基本はJavascript。

doOutput(e)関数で吐き出すらしい。これをAPIにすると、超便利である。

まず、
var summaryData = sh.getDataRange().getValues();
がミソ。これで一度すべてのシート内容を読む。シートが巨大な時はこれをつかう。早いから。

リターンで返す時は、
return ContentService.createTextOutput(JSON.stringify(json)).setMimeType(ContentService.MimeType.JSON);
などなど。単純に文字列を返してもだめっすよ、怒られます。

数値文字列に0を加えて桁数を同じにしたい、文字列加工したい

“%1$02d”がミソ。2桁に満たない場合は0が加えられ、結果的に2桁表示にしてくれる。

1だと 01 というふうに。

“%1$04d” にすれば、

1だと 0001 というふうになる。

よく使うタイマーの流れ

タイマーをよく使うのですが、備忘録として。

タイマー、ハンドラーを宣言。その後のスケジュールで0秒から開始、その後2000ミリ秒ごと(2秒)にタイマー作動。となっています。 new DownloadTimer() を宣言してそれを実行することになっています。

実際の処理内は、

こんな感じでクラスをつくり public void run() { } に処理をかきます。それが実行されます。

WebViewを使用したときに外部ブラウザにジャンプさせない

アプリ内でWebViewを使用したとき、外部ブラウザにジャンプさせたくないとき、上記をいれるとよい。

ストレージに画像保存するためのクラス

使い方は、

レイアウトというかsetContentViewで設置したレイアウトを丸ごと渡したい

例えば、入力チェックなどのバリデータチェックとかのクラスを使いまわしたいときとか、レイアウトまるごと渡したいよね。

こうしたら渡せるね

あ、ValidatorCheck ではチェックしたりしてエラーメッセージが累積して返って来る仕組み。

ボタンを半透明化ぁああああ

半透明化なんだけどさ、ここまでやんないとだめみたい。

レイアウトとか、ボタンとか、あちこちアニメーションしたいよね!

 

TranslateAnimation2クラスとか
Easingクラスとかいるからね

そんでもって

つかうときはこげな感じ

こんな風にすると、びっくりただのアニメーションにバウンスついたりする。これはJavaScriptでもよくある手法だよぬ!

TranslateAnimation2(-1400.0f, 0.0f, 0.0f, 0.0f, Easing.easeOutBounce);

ポイントは上の一行ですね。

クラスファイルを2つ使用するだけでいけるので、ちょびっとアニメーションしたいときなんか簡単でいいですよね。

 

参考サイトhttp://andante.in/i/java/%E5%89%8D%E5%9B%9E%E4%BD%9C%E3%81%A3%E3%81%9Feasing%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%80%81translate%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AB%E3%82%A4%E3%83%BC/

 

ダイアログメッセージを出す

これでウインドメッセージが出てきます。

“OK” を押した場合は、

この中にかくといいよ!

でもダイアログ以外をおしたときは、どう判定すればいいのか、、、、