2014年8月3日日曜日

Androidプログラミング:タイマーなどの高速な描画で、文字サイズを変えて表示したい場合

タイマーの小数点以下の表示など、高速で連続表示する必要のある部分では、android.text.Htmlを使用した文字列の操作では処理が重すぎ、画面のもたつく原因になります。
でも、めんどくさいしバックグラウンドサービス等から一括で送信した文字列を使いたい・・・。


これは、javaのスプリットを使用することでなんとかなります。

レイアウトxmlファイルで大文字、小文字のそれぞれに異なるidを設定しておき、以下のようにセットします。


TextView txt1 = (TextView) findViewById(R.id.txt1);
TextView txt2 = (TextView) findViewById(R.id.txt2);

String str_split = "00 : 00 : 00,.00"; // ここにスプリットする文字列を入れる。区切り文字は必須。
String[] str_splited = str_split.split(","); // この場合","で区切る。なお、","は表示されない。

txt1.setText(str_splited[0]);
txt2.setText(str_splited[1]);


この方法だと処理が高速なので、上手く行きます。すぐ解決したのですが、意外とネットに情報が無かったので。

学生向け、やっちゃいけないホームページの作り方

Windows環境に限定して、本当に基本的なことだけ書きますが・・・。


1. 特定の位置をクリックで行ける隠しページを作り、プライベートな何かをアップロードする。

駄目です。ブラウザを開いて、F12キーを押してみてください。HTMLのソースが表示されます。どこにリンクがあっても、ソースが読める人には簡単にばれてしまいます。


2. 簡単なパスワードで守られたページに、連絡先情報、サークル名簿などの個人情報をアップロードする。

駄目です。ブルートフォースアタックで簡単に破られます。20文字以上の非常に強度の高いパスワードを用いたとしても、キーロガー(打ち込んだパスワードを盗むウイルス)や通信の盗聴は防げません。


3. ホームページに使う写真を一括で(SDカードの中身全部等)アップロードし、そこから使用するものだけを使う。

駄目です。不適切な画像が混ざっているかもしれません。リンクしていない画像でも、強制ブラウズすることで簡単に見られてしまいます。写真以外もアップロードしていた場合、それも全部見れる状態です。アップロードは、本当に必要なものに限定して下さい。


いかがだったでしょうか?そんなの当たり前だろ!とか言われそうですが、意外とアレだったりするので書きました。ひやっとした方は、急いで直すことをお勧めします。

google-play-services のライブラリで出るエラーの直し方

8月1日から、従来のAdMob実装方法が使えず、グーグルプレイサービスを実装する必要があるのだが、グーグルからダウンロードしたEclipse(最新のAndroid SDK)での署名時にエラーが出る。\(゜ロ\)(/ロ゜)/

というわけで、以下、直し方。なお、私の環境は日本語プラグイン入れたPleiadesなのでご注意を。

http://stackoverflow.com/questions/23821554/auth-client-using-bad-version-title-is-translated-here-but-not-found-in-defaul

に書いてある通り。

英語なので、分かり易く日本語で書くと、ようはLintエラー検査で、MissingTranslationとExtraTranslationの重大度が高く設定されているため、はじかれています。

日本語環境では

ウインドウ--->設定--->Lintエラー検査から、「問題」フィールドにMissingTranslation及びExtraTranslationと打ち込み、重大度を警告(Warning)に引き下げてやればOKです。

あとは、google-play-services_lib/resの中の、values-en-rIN の auth_strings.xmlを valuesフォルダにコピーしといたほうが良い・・・かな?英語のauth_strings.xmlならどれでも良い気もするけど、valuesフォルダにauth_strings.xmlが入ってないと、デフォルト値が無いことになる。

ブログ開設ー。

ブログを開設してみました。