android:scaleType=”centerCrop”
だとレイアウト上のXYを、しっかり守った上で表示してくれるので。
俺は好き。
ImageView photo_thum = (ImageView) view2.findViewById(R.id.photo_thum); photo_thum.setMargin();
みたいにできると思うやん?できんから。
ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams)photo_thum.getLayoutParams(); lp.rightMargin = 10; photo_thum.setLayoutParams(lp);
一度、MarginLayoutParams に通すのね。これを利用すればなんでもオッケーオッケー。
// 端末の横幅を元に、3分割した横幅を計算 public int getTanmatsuWidth(int width) { width -= 20; int w = (int)(width/3); Log.d(TAG, "w= " + w); return w; } // 端末の横幅を元に、3分割した横幅を計算 public int getTamatsuHeight(int width) { width -= 20; int width2 = (width/3); int h = (int)(width2/1.618); Log.d(TAG, "h= " + h); return h; }
端末に画像を3つ並べて、間に10dpの隙間がはいることを想定しています。
なんちゃないよ。
// 端末の横DPを取得 WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE); Display dp = wm.getDefaultDisplay();
これで取れます。
tanmatsuWidth = dp.getWidth();
こうすればいいよぬ!
ただ、今は非奨励なんで
Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); int width = size.x; int height = size.y;
こっちでとりましょう。
http://d.hatena.ne.jp/tomorrowkey/20110809/1312865800
まずはここを見る、、、 認証とかめんどくさい。一般公開しているスプレッドシートの場合はどーなるというのか?!
ほんっと、みんな複雑に説明するの好きよね。頭いかれてる。
すこーしずつやってみていいやんか。
というわけで少しづつJSONを作ってみるから。ああ、あとさ。「作ってみる」を「作成」とかそういう風に難しく言うのも好きじゃない。頭いかれてる。 てめーだよ、てめー。
JSONObject jsonObject = new JSONObject(); String name = "いやんばかん"; jsonObject.put("name", name); return jsonObject;
まず、こうする。自分の予想的には立派なJSONが出てくるだろうと思ってる、しかし
jsonObject.put(“name”, name);
ここでエラーでます。1時間苦しむ。
答え↓
JSONObject jsonObject = new JSONObject(); String name = "いやんばかん"; try { jsonObject.put("name", name); } catch (JSONException e) { e.printStackTrace(); } return jsonObject;
try – catch で囲むとでません。腹たつよね。原辰徳だよね。知ってて当然みたいな顔するやつは教えるの向いてないことを自覚したほうがいいです。
実行します。
文字列で見れません。作成したJSONを見て「わーい!」ちょっとの一歩だけど大いなる一歩だ!ってやりたいのに。
return jsonObject;
ここをこうします。
return jsonObject.toString();
全体をみるとこういうメソッドにしてます。
public String jsonTest() { JSONObject jsonObject = new JSONObject(); String name = "いやんばかん"; try { jsonObject.put("name", name); } catch (JSONException e) { e.printStackTrace(); } return jsonObject.toString(); }
で、
Log.v(“AAA”, “jsonTest= ” + jsonTest());
これを実行するとぉおおお
V/AAA: jsonTest= {“name”:”いやんばかん”}
こういうのがログに出力されました、ひゃっほー。
つまり
name という入れ物に いやんばかん が入ってるという事だと理解する。
public String jsonTest() { JSONObject jsonObject = new JSONObject(); String name = "いやんばかん"; String monku = "くたばれ!"; try { jsonObject.put("name", name); jsonObject.put("monku", monku); } catch (JSONException e) { e.printStackTrace(); } return jsonObject.toString(); }
これを
Log.v(“AAA”, “jsonTest= ” + jsonTest());
で実行してみたらどうかしら?
V/AAA: jsonTest= {“name”:”いやんばかん”,”monku”:”くたばれ!”}
こうなる。イエェア!!! 以下、整形。
{
“monku”: “くたばれ!”,
“name”: “いやんばかん”
}
public String jsonTest() { JSONObject jsonObject = new JSONObject(); String name = "いやんばかん"; ArrayList hako = new ArrayList(); hako.add(name); try { jsonObject.put("name", hako); } catch (JSONException e) { e.printStackTrace(); } return jsonObject.toString(); }
さて、ここから。hakoというリストを作って、そこに いやんばかん をいれる。
V/AAA: jsonTest= {“name”:”[いやんばかん]”}
こうなる。なんだよ、この [ ] は?誰に断ってつけてんだ?
2回いれてみる。
public String jsonTest() { JSONObject jsonObject = new JSONObject(); String name = "いやんばかん"; ArrayList hako = new ArrayList(); hako.add(name); hako.add(name); try { jsonObject.put("name", hako); } catch (JSONException e) { e.printStackTrace(); } return jsonObject.toString(); }
こうなる。
V/AAA: jsonTest= {“name”:”[いやんばかん, いやんばかん]”}
ほほう。
[ ] はリストの事のようだな、、、。
エラー :Execution failed for task ‘:app:transformClassesWithDexForDebug’.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java” finished with non-zero exit value 2
うーむ。なんじゃろうこれは。
調べたところ、
http://qiita.com/furu8ma/items/6cb4b08c423da6a74299
メソッドの上限があるらしく、それをオーバーしたとのこと。
確かにライブラリーに対して、ごっぽし入れ込んでしまったのが原因のようだ。
function getValue() { // var ss = SpreadsheetApp.setActiveSheet("food_drink"); // var sheet = ss.getActiveSheet(); var bk = SpreadsheetApp.getActiveSpreadsheet(); var sh = bk.getSheetByName("food_drink"); var lastRow = sh.getLastRow(); var lastColumn = sh.getLastColumn(); var str = ""; var str2 = ""; for (var y = 1; y <= lastRow; y++) { var range3 = sh.getRange("A" + y).getValue(); str2 = str2 + range3 + ","; } Browser.msgBox(str2); }
エクセルはみんな使えるわけ、一応。職業訓練でもやるし。社会人はエクセルできて当然だろう!でもエクセルほどじゃなくて、サクッとやりたい時とかはGoogleスプレッドシートがいいよね。簡単だし、同時更新もできるからさ。
で、マクロ(プログラム)みたいにプログラムできてしまうのが、Googleスプレッドシート。
はぁ、こらええわ。
getLastRow(); で最後の行数がとれる。
getLastColumn(); で最後の列数がとれる。
いろいろ調べてみよう。
VSSというのは、ウィンドウズでいうところの、ボリュームシャドウ コピーサービス(VSS)、つまりバージョン管理システムである。
このVSSは、各フォルダ階層にすべて
vssver2.scc
というファイルができる。これがバージョンを管理しているのだが、これがモジュールなどのフォルダ配下(自分の場合はvolley)に入り込んでいると、これが原因で
Error: Could not expand ZIP *.aar
などの展開エラーが出るようだ。
gitなどは、プロジェクトのルートフォルダ(先頭のフォルダ)だけに管理ファイルがはいるのでそのような事はない。
もしどうしてもVSSをしようせねばならないのであれば、main配下のみを手作業で更新コピペするなどしてのりきるしかないだろう。大変面倒であるし、人力ミスも発生するのでVSSではなく、gitを使用したバージョン管理をおすすめする。