Archive for the ‘自社アプリ’ Category
交通警察スマートオフィス カレンダー
カレンダー はTableLayoutで作成して、日付を選択時データベースから該当レコードを検索して、フッタに表示する。
TableRow rowDateDetail = new TableRow(currentActivity);
dateDetail.addView(rowDateDetail, new TableRow.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
dateDetail.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL);
複数の列が指定されできます:
dateDetail.setColumnStretchable(0, true);
dateDetail.setColumnStretchable(1, true);
セルにクリックイベントを追加して、押下した検索事件を呼びます。
textDateDetail = new TextView(currentActivity);
textDateDetail.setOnClickListener(dateTextClickListener);
初期化とき検索したの出勤日情報によって、セルの状態を指定する。
交通警察スマートオフィス GOOGLE MAPの表示
アンドロイドの1.1バージョンから、GOOGLE MAPを利用しました、わたしたちはGOOGLE MAPで地方検索、位置確認、路線ナビゲーションなどモバイルの功能を完成しました、GOOGLE MAPのことはGOOGLE EARTHの地図で自分のモバイルに分かったところを探したことです.
GOOGLE MAPを利用した前に、<mapview>のAPIを申請する、申請方法はその他文章に紹介しました、APIを取得しましたが、画面に<com.google.android.maps.MapView android:apiKey=”取得したAPI” />を使えます、注意してください、MapViewを利用すれば、Map画面はMapActivityをインヘリタンス します。ある必要なMapView属性を紹介します、setBuiltInZoomControls(true)は地図のズーミングできることを設定します、setTraffic()は地図の交通モードの表示することを設定します、setSatellite()は地図の衛星モードの表示することを設定します、setStreetView()は地図の道路モードの表示することを設定します、これで、GOOGLE MAPの表示を完成しました。
GOOGLE MAPのナビゲーションは地図に自分が分かったところへ行った路線を検索することです、この路線は移動方式によって、検索した路線が違います、たとえば、警察スマートオフィスは徒歩式だけ与えます、路線を取得したい場合、先ずは二つポイントを分かりました、自分の位置と目標位置です、そのポイントは経緯で構造します、私たちは二つポイントの経緯をgoogle viagra serviceに送った、google web serviceは二つポイントの間の道路をKMLファイルで返事します、KMLファイルの中に二つポイント経っての路線をルートで書きました、KMLファイルを読んで路線を取得したが、Overlayで地図に描きました、それで、ナビゲーションを完成しました。
交通警察スマートオフィス ベースレイアウト
「BaseView」はLinearLayoutで各子画面の親クラスとして主画面を三部分(title,body,toolbar)にしります。初期化時各子画面が一緒に実例化して、タイトルは子画面によって変える。
LinearLayoutクラスはViewGroupクラスのサブクラスとなっています。ViewGroupクラスは特別なクラスで他のViewクラスのオブジェクトを子として含むことができます。 public void addView(View child, LayoutParams params) 1番目の引数には追加したい子のビュー、2番目の引数には子ビューの表示レイアウトを表す LayoutParamsクラスのオブジェクト (android.widget.LinearLayout.LayoutParamsクラスのオブジェクト)を指定します。
具体的には次のように記述します。 body.addView(currentActivity.getLayoutInflater().inflate(bodyContentId,null),new LinearLayout.LayoutParams(body.getLayoutParams().width,body.getLayoutParams().height));
上記の方法によって、親クラスのdisplay()をお呼びで、画面の遷移が実現します。
public void display(){
currentActivity.setContentView(skin);
currentActivity.currentView = this;
}
交通警察スマートオフィス メニュー2
ドラッグ式メニュー、私たちのモバイルはメニューに多いソフトウェアがあります、それから、強大な功能メニューは必要なものです、クリック、ドラッグなど、便利な功能です。
いま、アンドロイドのドラッグ式メニューの技術を紹介します、まずはメニューの式を確定しました。一般な式はリストです、たとえば、警察スマートオフィスのメニューは3行2桁のリストです、この式はGridViewを利用して、作成しました。実は、GridViewのデータはAdapterに存在しました、GridViewのsetAdapter(Adapter)ファクションでデータをGridViewに設定しましたが、私の予想メニューを準備しました、でも、表示したいですけど、ViewFlipperも利用します、準備したGridViewをViewFlipper.addView(GridView)でViewFlipperに設定しましたが、メニューが表示できます。
ドラッグ式メニューの功能はOnTouchListenerのonFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY)の中に完成します、ファクションの引数中にe1は開始位置、e2は終了位置です、メニューのフリップで、この二つ引数で完成しました、e1、e2は属性X,Yがあります、取得したX,Yの値の比較でどのページに行くことを行います。
ViewFlipperのページ変える、ViewFlipperのshowNext()、showPrevious()がページを変えます、でも、表示したいページをInAnimation、OutAnimationの設定することが必要です、そして、ドラッグ式メニューを完成しました。
交通警察スマートオフィス メニュー1
メニューについて、複雑な操作を含めますが、モバイルにクリックイベントしかありません、ドラッグイベントもあります、そして、アンドロイドにOnTouchListenerのクラスを提供しました、
オーバーライドOnTouchListenerとOnGestureListener中のファクションで、自弁の予想結果を完成しました、これで、ファクションを紹介します、ファクションboolean onTouch(View v, MotionEvent event)の中にGestureDetectorのonTouchEvent(event)の結果によってユーザの動作を判断します、
ファクションboolean onDown(MotionEvent arg0) はユーザがモバイルのスクリーンをそっと触れ時利用します。
ファクションonShowPress(MotionEvent e)はユーザがユーザがモバイルのスクリーンをそっと触れているままの時利用します。
ファクションboolean onSingleTapUp(MotionEvent e) はユーザがモバイルのスクリーンをそっと触れた後で離れとき時利用します。
ファクションboolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)はユーザがモバイルのスクリーンをそっと触れたものではやく移動した後で離れ時利用します。
ファクションboolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) はユーザがモバイルのスクリーンをそっと触れたものでドラッグしました時利用します。
ファクションvoid onLongPress(MotionEvent e)はユーザがモバイルのスクリーンを触れたのままの時利用します。
以上はOnTouchListenerとOnGestureListenerの通常使用方法、それ以外ファクションもありいますが、私たちは探し続けています。
交通警察スマートオフィス ロード
ロード画面は普通なロード画面ですが、モバイルに表示されたことが難しいです。画の輪が動きものを表したいですが、動き画面を静止画面で分解しました。アンドロイドのプロジェクトにxmlを作った、xmlに<animation-list>を要素として使います。この要素にそれら静止画面は<item>になって作成しました、静止画面と<item>の数量が同じです、<item>のandroid:drawablの属性にdrawableに置いた静止画面を指定しました。以上、準備完了。
次に、ロード画面の対応画面Activityに上述のことの使い方法を説明します。画面初期化のファクションにlayoutのImageViewを取得した、ImageViewのsetBackgroundResourceにxmlを設定した、AnimationDrawableがImageView.getBackground()で取得します、AnimationDrawable.start()、そして、動き画面が表しました。
交通警察スマートオフィスについて
交通警察スマートオフィスシステムは二つ部分アプリがあります(クライアント側とサーバ側)。クライアント側はAndroid技術で実装されます、サーバ側はGWT技術で実装されあす、クライアントとサーバはSocketで通信します。
クライアント側は以下の機能が提供します。
1 GPSで現在の位置情報を取得してサーバへ送信します。
2 交通違反が発生する場合は、モバイルで記録してサーバへ上げます。
3 交通事故情報はサーバへ送信します。
4 車両情報検索
5 知らせ情報 (通知の取得)
6 勤怠とTODO情報管理
7 地図上に道路ルートの検索
サーバ側は以下の機能が提供します。
1 Android端末を持っている人員の現在地表示
2 交通事故は地図上に表示
3 交通事故が発生する場合は地図上に人員の調整を行う
4 人員勤怠管理
5 知らせ管理
ルート記録アプリ-4
Position.java
public class Position {
private String id;
private String companyName;
private String address;
private String user;
private String telNo;
private String biko;
private String date;
private String time;
private double longitude;
private double latitude;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCompanyName() {
return companyName;
}
(続きを読む…)
ルート記録アプリ-3
HistoryActivity.java
//カレンダーの形式で履歴を検索して表示する
public class HistoryActivity extends Activity {
private int year;
private int month;
private int day=0;
private String[] calendarMatrixStr;
private int startDay;
private int lastDate;
private int todayPostion;
private Calendar cld;
private ListView listView;
private LinearLayout mainLayout;
private DbAdapter mDbHelper;
private TextView[] dateTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
cld = Calendar.getInstance();
setNewDate(0);
createCalendar();
}
private void createCalendar() {
calcFields();
mainLayout = new LinearLayout(this);
mainLayout.setOrientation(LinearLayout.VERTICAL);
mainLayout.setBackgroundColor(Color.WHITE);
(続きを読む…)
