takaiwa.net

Android、Java、Web系、Linux、マラソン等の備忘録

2012/12/24

android.widget 既存の操作音を消す

0 件のコメント
忘れがちなのでメモしておきます。
操作にSEを付ける場合、既存の操作音とかぶって邪魔するので消したい時などに。

動的にOFFすするにはwidgetに対して
setSoundEffectsEnabled(false);

xmlファイルでOFFするには、
android:soundEffectsEnabled=false

Eclipseのプロパティでは、「Show Advanced Properties」をクリックしないと出て来ないかもしれません。


追記:2014/10/05

ダイアログなどの場合は、AlertDialogからViewを取得して、setSoundEffectsEnabledをすれば良いようです。

AlertDialog.Builder builder = new AlertDialog.Builder(act);
builder.setSingleChoiceItems(R.array.entries_list, index, new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
    }
});

AlertDialog dialog = builder.create();
ListView list = dialog.getListView();
list.setSoundEffectsEnabled(false);
dialog.show();

ボタン操作音の場合は、以下のようにViewを取得します。

Button btn = dialog.getButton(Dialog.BUTTON_POSITIVE); 


参考
android - How to disable system sound effect on AlertDialog? - Stack Overflow http://stackoverflow.com/questions/13952495/how-to-disable-system-sound-effect-on-alertdialog

2012/12/20

背景をandroid:tileMode=”repeat”してるのに突然引き延ばされたようになる

0 件のコメント
ListViewの各項目の背景をdrawableで表題のように繰り返し表示をさせていたのですが、Andoidの2.1の実機で確認したら、それまで繰り返されてたはずの背景が引き延ばされたように表示されるようになりました。以下のような特徴があります。
  • アンインストールしても解消されず
  • 他のアプリではリピートが効いている
  • drawableのxmlファイルを変更しても解消されず
ググったら全く同じ症状の記事発見!
・android:tileMode=”repeat”が効かないケース – CEED
http://blog.ceed.jp/?p=339
確かにキャッシュっぽい感じではあるんですが、それを解く術がわからない.....
Stack Overflowではよくある質問のようで、
・background image not repeating in android layout - Stack Overflow
http://stackoverflow.com/questions/4077487/background-image-not-repeating-in-android-layout
 Honeycomb以前のバグのようです。もっとも支持されてる回答、

 public static void fixBackgroundRepeat(View view) {
      Drawable bg = view.getBackground();
      if(bg != null) {
           if(bg instanceof BitmapDrawable) {
                BitmapDrawable bmp = (BitmapDrawable) bg;
                bmp.mutate(); // make sure that we aren't sharing state anymore
                bmp.setTileModeXY(TileMode.REPEAT, TileMode.REPEAT);
           }
      }
 }

を適用したところリピートするようになりました。動的にリピートを指定してやらないといけないのですね。こういう再現させるのが不明なバグを発見できて良かったです。



2012/12/19

Eclipseの高速化メモ

0 件のコメント
Eclipseが重いと一言に言っても、いろいろな工程での話があると思いますが、過去記事のなども含めてこの記事にピックアップしておきたいと思います。以下はWindows環境での話です。

2012/12/18

android.graphics.Pathで紙が浮いてるような影を描画する

0 件のコメント
なかなかオリジナリティ溢れるやり方なんですが、紙が浮いてるような影が付いてる画像をGoogleで画像検索して、その画像を拡大しておそらくこうなってるだろうとpathで表現してみました。ただ単に影を付けるなら、PaintのsetShadowLayer()を利用すればすぐに付けられますが、今回はこのような



両端がちょっと浮いてるような影についてです。

また、Pathで描画するメリットは、
  • Android API Level 1からサポートされてる
  • 自由に座標を指定できるので、端末のサイズ等に合せて調節できるなど
があると思われます。座標を計算するのがややこしいですけど。


2012/12/15

Android CheckBoxをxmlでカスタマイズ

0 件のコメント
やりたい事、
  • 自前のチェックボックス画像にしたい
  • タッチした時だけ背景色を変更
分かればなんて事ないんですが....
後者は動的にやると、OnTouchListenerを使ってMotionEvent.ACTION_DOWNで背景を変更し、MotionEvent.ACTION_UPで背景を戻すというコードを書かなければならないのですが、XMLで書くとコード中で余計な事(onTouchメソッドのreturn値とか)を気にしなく良くなるので、スマートだと思います。


2012/12/13

猫柵を自作

0 件のコメント
( ゚∀゚)o彡°DIY!DIY!



以前は、ダンボールとかでバリケード作ってたんですけど、


高さがなくてもこんな風に本をのっけておくと滑るので超えられなかったんですが、さすがにその上までジャンプできるようになって、ホームセンターとダイソーで材料を買ってきました。


Android Mockでテストしてみる( ;ω;)

0 件のコメント
試行錯誤も、次の一手が残っていれば挑戦してみようと思えるのですが、流石に万策尽きた感が出て諦めようと思っていたのですが、何とか動いたのでメモしておきます。


[環境]
  • Eclipse IDE for Java Developers Helios Service Release 2
  • OS : Windows 7
  • Android Development Tools 21.0.0.v201210310015-519525
・Android Mockを利用してHTTP通信をテストするには(1/3) - @IT
http://www.atmarkit.co.jp/fsmart/articles/androidtest05/01.html

こちらの有り難い記事。サーバへの通信とかを疑似サーバを立てないでテストしたいと思ってたので、コレコレ!という事でやってみたのですが、次のページの、

・Android Mockを利用してHTTP通信をテストするには(2/3) - @IT
http://www.atmarkit.co.jp/fsmart/articles/androidtest05/02.html

を何度も熟読してもエラーが出て前に進めませんでした( ;ω;)


2012/12/08

ArrayAdapterで作ったListView上のリスト項目に動的にViewを追加する方法

0 件のコメント
マニアックな話なんですけど、

ArrayAdapterで作ったListView上に、カスタマイズしたViewを動的に配置したい場合、Android 2.x系にはちょっとクセがあるようで、Android 4.0.3や3.1では表示されるのに、2.2や2.1では表示されず試行錯誤したのでメモしておきます。

例えば、

(特に意味はないですけど)リストに「春、夏、秋、冬」と表示させ、リストをタップすると赤い円を描きたいような場合



ListViewや項目のレイアウトはこんな感じ



【たぶん】Android端末が頻繁に勝手にシャットダウンする問題について

2 件のコメント
---- 下端に追記 ----

古い端末なんですけど、

[環境]


  • Xperia SO-01B
  • Android 2.1
ここ3,4ヶ月くらいAndroid端末が急にシャットダウンして困ってたんですが、何となく原因が分かった気がします。

[シャットダウンのタイミング]
  • 写真撮影
  • 動画撮影
  • PCと繋いでアプリのデバッグ
検索すると、端末に負荷がかかったとか、バッテリーパックを抜き差しすれば直ると電話オペレータに言われただのありましたがwそんな、昔の家電を叩いたら直った的な対処を....きっと電話オペレータさんも大変なんだなと思います。僕もやってみましたけど

デバッグは直接関係なかったかもしれませんが、これのせいで端末に負荷のかかる処理でシャットダウンしてるのだと思ってましたが、どうやらmicro SDカードの状態が悪くなったように思います。接触不良なのか、カードが破損したのかわかりませんけど。

最近それが進行したのか、micro SDが破損していますというエラーが端末に表示され、フォーマットしますか?と迫られたので、フォーマットしましたが、写真を撮影しても保存できませんでした。

micro SDが死んだなかなと、デジカメのものと交換したら、何事もなかったかのように写真が撮影できて保存できました。今のところシャットダウンの兆しもありません。なので、シャットダウンしてお困りの方はmicro SDを交換するのも一つの手かもしれません。

Androidシステムは半損したmicro SDに保存しようと何度も試みているはずなので、その分電池の消費も多かったかもしれません。Evernoteあたりの同期処理で電池が一気になくなってたので。そして、処理速度にも影響があるでょうね。

ただし、このような問題の場合、上記の端末の電源ON中にバッテリーパックを抜き差しすると、micro SDの劣化を進行または破損させる危険性があるでしょう。

推測ですけど


追記
micro SDを交換するとEvernoteの同期が失敗するようで、一度サインアウトしてサインインすると同期できるようになりました

追記:2012/12/13

気のせいでしたすみませんm(_ _)m
やっぱり、カメラを何度か使うとシャットダウンします。

追記:2013/11/20

バッテリーの問題では?バッテリーの劣化による(フル充電でも)パワー不足で、システムがシャットダウンしてるのでは推測します。最近電池を買って取り付けたら、シャットダウンすることなく、位置情報記録アプリやカメラアプリなども普通に使えるようになりました。

追記:2015/01/17

ネットを見てるとバッテリー劣化というだけでなく、寒さで電圧の低下によるシャットダウンという可能性もあるかもしれません。

2012/12/05

部屋にあるもので猫がおもちゃにしてるもの

0 件のコメント
天気予報では雪マークが出たりして、寒い今日この頃ですが、猫の脚力と好奇心はとどまる事を知らないようです。

猫がおもちゃと見なしたものをピックアップしておきます。


  • 紙類
    • 新聞
    • ティッシュ(すぐにちぎれて、口に入れようとするし、まき散らすので注意が必要)
    • コピー用紙(特に丸めたやつは大好き)
    • レシート(同上)
  • 衣類
    • 臭い靴下
    • 服・洗濯物
    • ざぶとんの紐
    • カーテン
    • マフラー
  • 耳かきのふわふわ
    [before]

     ↓
    [after]
  • 電気のコード
  • ストロー
  • 釣り糸
  • 精密機械
    • パソコン(起動時の音)
    • プリンタの動作音
  • 梱包素材
    • 買い物袋
    • 緩衝材
  • ピンポン球(Youtube動画)
まとめると、
  • 臭いのするもの
  • 軽くて高い音がするもの
  • かみ応えのあるもの
基本的には消耗品として諦めてますが、寒くなったら大人しくなってくれるのでしょうか....一時しのぎでしょうけど


追記:2012/12/18

ピンポン球は跳ねるので遊ばせると面白いですが、体力も使うようですぐに飽きました。紙と布系は根強くじゃれます。