head

2014年11月18日火曜日

Android 5.0 マテリアルデザイン(material design) RecyclerView, CardView 実装メモ --2014-11-18


さて、マテリアルデザイン関係で。(material design)
一部Viewの実装メモです。

Android5対応の修正メモ
http://knaka0209.blogspot.jp/2014/11/android5-2014-11-18.html
のViewコンテンツ一部です。

Github
https://github.com/kuc-arc-f/recycle3

参考URL:
RecyclerView https://developer.android.com/samples/RecyclerView/index.html
CardView https://developer.android.com/samples/CardView/index.html

[内容]
RecyclerView 、CardView
を含んだ、丸角行のリストViewです。
Fragment実装でなく、Activityに実装してます。
各行を押した時のイベント処理と、
遷移先の画面などを追加。

4x対応で、ShadowなどZ軸関係の描画処理は無し。



[実装など]
build.gradle ,ライブラリのimport必要
========================
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.0'
    compile "com.android.support:gridlayout-v7:21.+"
    compile "com.android.support:cardview-v7:21.+"

    compile "com.android.support:recyclerview-v7:+"
}
========================

RecyclerView ですが
ListViewのメソッドとは、全く異なり
onCreateViewHolder
onBindViewHolder
などで、描画します。

========================
CustomAdapter.java
行のinflate時に、レイアウトXMLのサイズ値が
適用されなかったので、APIでLayoutParams調整してますが。
不要な場合は、削除して構いません。

   public ViewHolder onCreateViewHolder(ViewGroup parent, int position)
    {
        LayoutInflater inf = (LayoutInflater) parent.getContext().getSystemService( parent.getContext().LAYOUT_INFLATER_SERVICE);;
        View ll = (View) inf.inflate(R.layout.fragment_card_view, null);
        LinearLayout.LayoutParams param_ll =new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT );
        ll.setLayoutParams(param_ll);

        ViewHolder vh = new ViewHolder( ll );
        return vh;
    }
========================

CardView
Radius (丸角の大きさ) =8dpにしてます。
===================================
fragment_card_view.xml
    <android.support.v7.widget.CardView
        android:id="@+id/cardview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        card_view:cardBackgroundColor="@color/cardview_initial_background"
        card_view:cardCornerRadius="8dp"
        android:layout_marginLeft="@dimen/margin_large"
        android:layout_marginRight="@dimen/margin_large"
===================================

*)
丸角の描画処理など、カンタンにできて良いですね。
SDK21対応のShadow(影)など、
追加する事でマテリアルぽく仕上げできそうです。(次回、チャレンジ)



Android 5.0 対応の修正メモ 2014-11-18


さて、Android5 への移行対応です。
Android4/5 コンパチ仕様を目標に進めてましたが、苦労も多かったので、メモです

[準備 ,IDE等]
Android 5.0 SDK のリリースをみると、Android Studioが推奨のようです。
(必須ではないかもしれません)
http://googledevjp.blogspot.jp/2014/10/android-50-lollipop-sdk-nexus.html

1) Android Studio (0.8.14)  DLする。
2) Android SDK Manager から、Android 5.0 SDK (SDK 21) をDLする。

[Android Studio へのプロジェクト移行]
import機能を使わずに、ファイルのcopy等で、手作業で移行する場合。
1)まず、ファルダ構成がかなり違います。
旧 Eclipseは、直下に
/src
/res
/libs
などが配置

Android Studioの場合
\app\src\main 下に
res
libs
\app\src\main\java
SRC -FILE
を配置。(srcフォルダは不要)



2) manifestの違い
単純に上書きしないほうが、良いかもしてません。
旧AndroidManifest.xml と、要素が異なる部分があります。
Android Studioの場合、build.gradle(/app/build.gradle)に、
minSdkVersion
targetSdkVersion
versionCode
versionName
その他、が管理されますので
必要な要素のみcopyし、build.gradle側も合わせて修正しました。

[material design]
リスト系Apps使えそうでなUI View関係を少し調べました。
※ SDK 21(Android5)以上の必須APIあるので、
 それ以下ではクラッシュする場合あります。

 RecyclerView サンプルあり
https://developer.android.com/samples/RecyclerView/index.html
ListViewの置き換え、区切り線などの、
カスタマイズ(拡張性)ができたようです。

 CardView サンプルあり
 https://developer.android.com/samples/CardView/index.html
丸角の幅指定、などが可能。

Shadow
https://developer.android.com/training/material/shadows-clipping.html
影の指定(Z軸)などが可能

カンタンな自作したサンプル、
RecyclerView 、CardViewを含んだ、丸角行のリストView。
http://knaka0209.blogspot.jp/2014/11/android50-material-design-recyclerview.html
Github
https://github.com/kuc-arc-f/recycle3


[Ad/ Admob の移行実装]
1) SDK manager から
Google Play Services をDLします。。(Extras の下)

2) google-play-services.jar を。 /app/libs に置きます。

3) versionの指定
res/values/version.xml

<integer name="google_play_services_version">6171000</integer>

4) build.gradleの修正
dependencies に下記を追加、(6.1.71は、versionなので注意)
compile 'com.google.android.gms:play-services:6.1.71'

※) その他は、Eclipese版とほぼ同じ、
  manifest の<activity>の指定内容など

[コラムなど、まとめ]
Android Studioの開発環境移行は、
Eclipseでの開発者はかなり苦労するかもしれませんが。
マテリアル対応のUIまわりは別としても
新環境で、リコンパイルする事で、今後の開発に有利になりそうです。
ARC(新しいVM)に対応して、性能面での向上も期待したいところです。
*) 5実機入手できていないので、未検証ですが。


google colaboratory お試し編 、GPUも使える機械学習の環境構築

前回続き、機械学習の関連となります。 開発環境まわりの内容となり。先人様の情報を元に調査しました。 google colab(google colaboratory) を試してみました。機械学習系の いくつかのライブラリがインストール済みで、 クラウド上で、ある程度機械学...

AD-parts

Shop
Bluetooth搭載
ベース基板

Social