TAKETOMA's Labo

作成しているAndroidアプリのサポートと
プログラミングやいろんなガジェットについて
備忘録を残していくブログです

SlamDunkLine ver2.3.1リリース

SlamDunkLineのver2.3.1をリリースしました。

軽微な修正を加えました。


・HoneyComb以降のアクションバーに設定ボタンを表示するように修正
・背景画像を探すでタブレットのような大きな画面に表示されるように修正


EasySuji ver2.9.0リリース

EasySujiをver2.9.0をリリースしました。

・SimejiのCandy機能廃止に伴い、Candy機能を削除しました。
・追加可能変換候補のXXX人を削除しました。


最近、EasySujiのインストール数が右肩上がりで伸びてるのはなぜでしょう。
特にレビューサイトとかには出てないはず。

まあ、たくさんの人が便利だと思ってくれたら幸いです。

TextIconCreaterForADW ver4.6.0リリース

TextIconCreater For ADWをバージョンアップしました。

【機能追加】
①テキストの位置を追加
 →中央、左、右からテキスト位置を選択可能にしました

②その他の設定にテキストアイコンモード設定を追加
 →3つのモードから選択可能にしました
  1.標準モード…今まで通りのアイコンを作成します
  2.テキスト透過モード…背景からテキスト部分を切り抜いたアイコンを作成します
  3.テキストの背景同化モード…テキスト部分を背景と同化させたアイコンを作成します


幾つかのバグを修正

EasySuji ver2.8.0リリース

ご要望にお応えして、ver2.8.0リリースしました。

【ご要望対応】
・yyyy/mm/ddへの変換候補追加

【バグ修正】
・アプリケーション情報のメールアドレスが間違っていたのを修正。

【連絡】
・XXX人がユーザー定義でまかなえるので次回アップデート時に削除する予定。

AndroidのレイアウトXMLファイルを分割する

Activityなどのレイアウトを定義しているXMLファイルは分割することが可能。 

同じレイアウトを使いまわしたいときに便利。

使い方はいたって簡単。

使いまわしたいレイアウトファイルがsub_layout.xmlだとすると

以下のようにincludeの一行を入れたい部分に挿入するだけ。


    
    

これで簡単にレイアウトファイルの使い回しが可能になります。

AndroidOSのバージョンを判定する

Androidは、3.Xのタブレット用HoneyCombから2.Xのスマートフォン用に比べて
APIが大きく増えている。

2.X系のスマートフォンでは使えないけれど
3.X系のタブレットでは使用したいAPIがあれば、
AndroidOSのバージョンを判定する必要がある。

AndroidOSのバージョンは

Build.VERSION.SDK_INT

で判断できる。

SDKのAPIレベルが返ってくるのでそれで判断する

    if(Build.VERSION.SDK_INT > 10){
        // HoneyComb以降
    }else{
        // GingerBread以前
    }

インテントで他のアプリと連携する

インテントとはAndroid OSでアプリ間やアプリとシステム間の橋渡しをする
素晴らしい機能です。

自分のアプリでできないことは他の機能を持つアプリにしてもらえばいい
というエコな機能です。

そんなインテントで他のアプリと連携する方法をまとめておく。

・テキストを他のアプリに送るインテント
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.putExtra(Intent.EXTRA_TEXT, "テキスト");
    startActivity(intent);

・ブラウザを起動するインテント
    Uri uri = Uri.parse("https://www.google.com"); 
    Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
    startActivity(intent);

・画像を取得するインテント
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
    intent.setType("image/*"); 
    startActivityForResult(intent, 0);

・マーケット(現Playストア)を検索するインテント
    Uri uri = Uri.parse("market://search?q=" + "検索キーワード"); 
    Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
    startActivity(intent);

・YouTubeアプリで検索するインテント
    Intent intent = new Intent(Intent.ACTION_SEARCH);
    intent.setPackage("com.google.android.youtube");
    intent.putExtra("query", "検索キーワード");
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);

・EverNoteアプリで検索するインテント
    Intent intent = new Intent();
    intent.setAction("com.evernote.action.SEARCH_NOTES");
    intent.putExtra(SearchManager.QUERY, "検索キーワード");
    startActivity(intent);

・明示的にアプリを呼び出すインテント
    Intent intent = new Intent();
    // パッケージ名とアクティビティ名を明示してインテントを呼び出す
    intent.setClassName("パッケージ名", "アクティビティ名");
    try{
  startActivity(intent);
    }catch (ActivityNotFoundException e){
 // 明示的に指定したアプリが見つからない場合、Playストアへ直行する
 Uri uri = Uri.parse("market://details?id=" + "パッケージ名"); 
        Intent it = new Intent(Intent.ACTION_VIEW, uri); 
        startActivity(it); 
    }

ShareTextPicker ver1.0.0リリース

TextViewをカスタムする投稿でカスタムしたTextViewを使ってアプリを作成しました。







ShareTextPickerです。


ShareTextPickerは共有されたテキストから
欲しい部分のみを抜き出し、別アプリに連携する為のアプリです。

PlayストアやYouTube、EverNoteアプリにキーワードを渡して検索できます。

機能はまだまだシンプルですが、できればもっと機能追加していきます。

使用できるのは、Android3.0以上になります。

AndroidのTextViewをカスタムする

そろそろスマートフォンにもAndroid4.0が普及してきそうだ。 
Android4.0へのアップデート情報や4.0搭載の新機種の話題がたくさん。

タブレットは普及しているのかは不明だが(我が家にはTF101がある)、
GoogleのNexusタブレットはかなり低価格で販売されそうだとの噂もちらほら。

アプリもいろいろとついていかないといけないなぁと思い
最近はもっぱらAndroid Developer's のReferenceを読みふけっている。

Android3.0以降から使えるようになったAPIはたくさんあるので
勉強してアプリに組み込んでいきたい。

今日はTextViewについてメモっとく。 

TextViewは、Android3.0以降から長押しでテキスト選択可能になっている。
テキスト選択するには

TextView#setTextIsSelectable(true)

で選択可能にしてあげると選択モードに切り替わる。 

選択モードになると
すべて選択とコピーがアクションバーに表示されるのだが、
これだけだと微妙に使い勝手が悪い。 

で、選択モードをカスタムできちゃうのがこのメソッド

TextView#setCustomSelectionActionModeCallback()


使用方法はこんな感じ こんなコールバックインターフェースを実装する。

 private class TextSelectActionMode implements ActionMode.Callback {
     
     @Override
     public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
      if ("custom".equals(item.getTitle())){
       // テキストに対してなんらかの処理をする
       // 例えば、選択した文字列を()でくくるとか
      }
         return false;
     }

     @Override
     public boolean onCreateActionMode(ActionMode mode, Menu menu) {
      // アクションアイテムを作る
      MenuItem cutItem = menu.add("custom");
      cutItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
      cutItem.setIcon(R.drawable.icon);
      
         return true;
     }

     @Override
     public void onDestroyActionMode(ActionMode mode) {
     
     }
     @Override
     public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
         return false;
     }
 }
そして、以下のようにTextViewにセットするだけでカスタムしたテキストビューができる。
TextView.setCustomSelectionActionModeCallback(new TextSelectActionMode());

GoogleNewsで自分の知りたいニュースのみRSSで購読する

GoogleNewsで自分の知りたいニュースのみRSSで購読する

題名のとおりで、自分の知りたいニュースだけRSSReaderで読みたい。
GoogleNewsのサイトでできるのか調べてみたのだが見つけることができなかった。

Googleアラートを使えば、似たようなことが出来るらしかったがメールで届くのがいまいち。。。

得意先に関するニュースは知っておきたいとか、なんなりニーズはあるはず。


ググると解決法があった。


検索用フィードを作ってRSSReaderに登録すればできるとのこと 。

よくよく見てみたら、AndroidのGoogleReaderアプリにそんな機能がついてた。

ただアプリが日本語対応してないせいか、
トピックを日本語でなく英語で書くと英語のニュースしか出てこない。。。

ちょっと不便だなぁと思い、欲しいものは作ってしまった。



MyTopicNews


使用方法は入力枠にキーワードを入力して、
下のボタンで、作ったfeedを共有、コピーできるので
各々のRSSReaderクライアントアプリに登録できる。

たいしたアプリじゃないので、野良アプリで公開。

ここからダウンロードしてください。