コマンド入力を考えてみる
隠しコマンドのような実装を考えてみる
なぜこのような事を考える必要があるかというと
- 見た目のちょっとした変化を嫌うユーザさんが実は多い*1
- 機能追加=>自分がうまくいっていない場合「○○追加したせいだ」と文句を言う人がいる
- 後は政治的なお話でとか。。*2 *3
- UI的に画面のボタン等は少ない方がいい という場合
ようは機能アップはしたいんだけど
- 別途説明が要りそうな話とか*4
- ユーザさんから文句言われそうなこと
は極力避けたいわけですね(汗 *5
タダでさえモチベーション削れるわけですし。*6
だから「気づいた人だけ使ってください」な感じになるのかな〜。
まあココも文句言いたがる人に見つかった場合は綱渡りになったりするんだろうけど(汗
結局面白い物を作ったり提供したいのに、人の目を気にしてそういうの出せないのは勿体ないよな〜
とか思ったりするけど・・。*7
そもそも説明書きを付けたりする部分は
「ココに書いてましたよね??」という為に記載があったりする *8
後は、昔からのゲーム会社さんとかでの考え方だと
- デバックモード的な物
な認識の形もある。
実際そこら辺の話は機能追加版は有料アプリで出せばいい
という意見もあるとおもうんですけど、日本だと
そんな感じ。
マネタイズ的な話は難しいかもしれませんね*10
で実際の試作イメージ
初期化部分)
実際の処理部分)
一応画面比率計算はしているけど、ここら辺は端末差で取得できる値の差が激しいので*11
実機調整は必要かも。でもまあ複雑なコマンドはこの応用例でいける感じだとは思う
で応用案として
TabActivityみたいなので、特定のTABだけ隠すみたいなことをしたければ
tabHost.setCurrentTabByTag("One");//カレントの移動 tabHost.getCurrentTabView().setVisibility(View.GONE);
みたいにすれば特定TABの表示非表示等も可能だと思う
まあここら辺はネタ帳的な話ですね。。
追記)
onFlingの影響範囲はボタン等の直接コントロール上だと対象外になってしまうようです。
従って、画面上のコントロールをTableLayout等で囲むとボタン上でもFling範囲に出来ます
追記2)
Nexsus7 だと移動量変移が凄く細かい単位で取れてしまう。従って移動量判定を入れると動かせない
これNexsus7だけの問題なのか、4.1から取り方変わったのかな・・・?
端末 | velocityX | velocityY | m_density |
---|---|---|---|
005SH | 1000〜2000 | 1000〜2000 | 1.0 |
Nexsus7 | 1〜200 | 1〜200 | 1.6 |
if( Build.BRAND.equals("google") && Build.MODEL.equals("Nexus 7") ){ if(velocityX<0 || velocityY> 0){ fling_count=0; return super.onFling(event1, event2, velocityX, velocityY); } break; }
心当たり有るとしたらこの計算がおかしい?
WindowManager windowManager = getWindowManager(); Display display = windowManager.getDefaultDisplay(); DisplayMetrics displayMetrics = new DisplayMetrics(); display.getMetrics(displayMetrics); float scale = (displayMetrics.widthPixels /displayMetrics.density) / 480 ; m_density = displayMetrics.density * scale;
kojiokbさんにアドバイスは頂いた。ちょっと後で考え直してみる
読んでる。 Yukiの枝折: Android:Activityスタックの状態をダンプして確認する方法 URL
@kojiokb お忙しいところすみません。なんかnexsus7の時だけ挙動が変わった処理が有るのですが、情報お持ちでしょうか? URL の 追記2)の話です
2012-11-03 17:02:16 via YoruFukurou to @kojiokb
@kimukou2628 onFling()のvelocityって移動距離じゃなくて速度ですよね?
@kojiokb 今ググってみても URL な記述が・・。速度だとすると移動量ってどう計算するのが正しいのでしょう? Nexsus7の表示デバッカだと700-1000辺りの値は出ているので計算方法が違うのかなとは感じていました
2012-11-03 18:19:10 via YoruFukurou to @kojiokb
@kimukou2628 出かけるのでザクッと書きますね。画面の物理サイズと解像度が違うので、同じ指の動きでも検出される速度が変わると思ってます。なので、それに対する補正の処理を書いてあげればよいかと。
*1:ちょっとした画面遷移効果とか,見た目の軽微な変化とか
*2:開発者が考える企画はダサイな一般認識があったり<汗
*3:あとはIOS版と両方出ている場合IOS版が一番優れていないと駄目な思想とか
*4:説明書なしが理想らしい
*5:特にAndroidはdisコメで溢れるのでdisコメ対策しかしたくないな発想になりがちかも
*6:なんかPlayの返信機能もまだ抽選みたいな状態みたいだしな・・
*7:こういう話があるからマーケティング重視な話は嫌いだったり。集めたデータは基本的に恣意的に運用される物なのですよ!
*8:昆布ガチャのアプリ内課金とか
*9:海外では違うらしいですが。。
*10:Adに関しても通信リトライでアプリが不安定になる話もあるから