HOME > CONIT Labs.

CONIT Labs.

Android Tipsその①


こんばんわ、
Android AR
これ面白いですね。
ラボにアンドロイド系の情報が少ないことに気づいたので、今回から数回にわたり、
レベルは高くないけど、本にはあまりのっていないような内容について書いてみたいと思います。
第1回は、カスタムリストの作成について、です。
Step 1:リスト表示を行うためには、BaseAdapterクラスを継承してImageViewAdapterを作成する
今回は、単純にリストに画像を表示するカスタムクラスを作成します。
ソースを示します。解説は中に書きます。
**************************  アダプタクラス  ******************************
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.view.LayoutInflater;
import android.widget.ImageView;
import android.graphics.Bitmap;
import android.content.Context;
import java.util.HashMap;
public class ImageViewAdapter extends BaseAdapter {
// グローバル変数
private LayoutInflater mInflater;
private HashMap mHashImage;
public ImageViewAdapter(Context context){
//参照先を保存(キャッシュ)
mInflater = LayoutInflater.from(context);
    //画像管理リスト
mHashImage = new HashMap();
}
  // データをadd
public void addData(Bitmap bitmap){
this.mHashImage.put(new Integer(this.mHashImage.size()), bitmap);
}
// リスト数を返す
public int getCount() {
return this.mHashImage.size();
}
//アイテム取得
public Object getItem(int position) {
return this.mHashImage.get(position);
}
//アイテムID取得
public long getItemId(int position) {
return position;
}
// ビューを取得する
// showViewはリストにアイテムとして表示するビューのこと
public View getView(int position, View showView, ViewGroup parent) {
ImageView iView;
//初期化
if(showView == null){
showView = this.mInflater.inflate(R.layout.row_image, null);
iView = (ImageView) showView.findViewById(R.id.list_row_image);
showView.setTag(iView);
}
else{
iView = (ImageView)showView.getTag();
}
updateImageView(position, iView);
return showView;
}
public void updateImageView(int position, ImageView iView){
iView.setImageBitmap(this.mHashImage.get(position));
}
****************************************************************
今回、リストの管理としてHashMapクラスで管理しました。
Step 2:作成した、ImageViewAdapterクラスをListActivityを継承した、ListOfPackageクラスでセットする。
public class ListOfPackage extends ListActivity {
// リストビューに表示するデータを保持するアダプター
ArrayAdapter mAdapter;
private ImageView mListView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_of_package);
mListView = (ImageView) findViewById(R.id.ListOfPackage);
// アダプタクラスを作成する
ImageViewAdapter imageViewAdapter = new ImageViewAdapter(this);
// Drawableに予めあるイメージからテストサンプルイメージを取得する  (今回やり方は適当です)
Resources r = getResources();
Bitmap bmp1 = BitmapFactory.decodeResource(r, R.drawable.test1);
Bitmap bmp2 = BitmapFactory.decodeResource(r, R.drawable.test2);
Bitmap bmp3 = BitmapFactory.decodeResource(r, R.drawable.test3);
Bitmap bmp4 = BitmapFactory.decodeResource(r, R.drawable.test4);
imageViewAdapter.addData(bmp1);
imageViewAdapter.addData(bmp2);
imageViewAdapter.addData(bmp3);
imageViewAdapter.addData(bmp4);
// ここでセットして登録する
setListAdapter(imageViewAdapter);
}
以上です。

iphone 開発の効率化


こんにちはGS@CONITです。
最近ぼやきばっかりになっていたので、人の役に立つ事を書いてみます。
コニットではiPhone開発を初めて約1年になります。
独自企画のアプリ開発をはじめ、各種実験的なアプリの開発
丸投げサービスでのアプリ開発など、ノウハウは
どんどん溜まっていきます。
ノウハウの共有は文書という手もありますが
開発の場合はライブラリという形などで、成果物を共有しますね
今回はそういったものを紹介します
共通ライブラリ化
既にテスト済みのコードをパッケージングして
社内で使い回します。
バグが見つかった場合は、その部分をアップデートすれば
全体に反映されるので効率がアップします。
参考Webサイト
http://dev.byteclub.com/blog/1-iphone-sdk/48-how-to-almost-create-your-own-iphone-os-framework
http://www.beyondfactory.net/blog/?p=18
運用はそれぞれですが、
基本的に、メジャーバージョン、マイナーバージョンで
管理する事が一般的ですね。
インターフェースに変更があるバージョンアップは
メジャーバージョンの変更、
バグフィックスはマイナーバージョンアップを変更します。
こうすると
今使っているバージョンが、2.6の場合に
バージョン2.7を作った場合は、安心して入れ替えができます。
逆にバージョン3.0を導入する際は、コードの変更が必要になることを
注意して導入します。
こういったライブラリ群は、
ドキュメントと一緒に社内WIKIでも立ち上げて
いつでもダウンロードして使えるようにしておきたいものです。
次回は、XCodeのテンプレということで。

これは、おもしろいTwitterサービスだ!


こんにちは、阿久津です。
Twitterのアプリは世の中に多数あると思います。
その中で、ちょっと玄人好みのTwitterクライアントを発見いたしましたので紹介したいと思います。
TweetShell
名前からも連想できると思いますが・・・
そうですCUIライクなTwitterクライアントなのです。
しかも、ブラウザからコマンドラインで操作するサービスなのですが
ユーザビリティなど何処吹く風♪
開発者目線からいうと、ユーザにとってどういうUIが使いやすいのかともっとも
頭をなやます部分なのですが・・・
逆の発想で使いにくくというか時代を逆行するようなUIは、逆に目を見張りますね!
こういった発想もたまには、必要なのですね〜
凝りすぎると、かえって使いにくいものになったりもしますからね〜
ふむふむ、「TweetShell」なかなか面白いですよ。
イメージ1:

イメージ2:コマンド一覧

イメージ3:ログインして lsコマンドで自分がフォローしているつぶやきを参照

たまには、CUIにてつぶやいてみるのも気分転換にど〜ですか???

コニット開発室

CONIT Official Tweet

CONIT Facebook FanPage

CONIT BLOG

株式会社コニット

SamuraiSmartphoneServices

Buy and take only medicines from online pharmacy ,]}$ drugs online has affordable prices. Brand name drugs Canadian pharmacy [*}: compare drug prices Canada delivering medicines at your door. Free online consultation at https://canada-pharmacy-store.com <;) order cialis highest value and quality. Is it legal to mail prescription drugs? Yes, Canadian drugs [.($ order viagra . After ordering you will be contacted by our managers and agree on the delivery details.