Android開発で、時に、ImageViewやTextViewなどの、押すことを考えられていない部品1に、押した時の処理を記述する(setOnClickListenerする)事があるかと思われます。
しかし、そのような時、Buttonなどと違って、押したことがユーザーにフィードバックされないため、押した時の視覚的な反応を自分で実装する必要があります。
ところで、Android Lollipop(5.0)からのMaterialテーマではボタンなどを押したときに波紋が広がるようになりましたね。とってもカッコいいです。
これをRippleというらしいです。
せっかくなら、Android5.0未満、つまりAPIレベル21未満では普通に、
それ以上ではRippleエフェクトがかかるように実装したい。
私がそこでハマったので、その方法を記録しておきます。
ちなみに何をするのかというと、効果をつけたいViewの上にImageViewを置き、そのImageViewのsrcとして波紋のDrawableを設定します。
Javaは一切書きません。
1: Widget、View、ViewGroup、Layoutなどの名称の関係が良く分からないのでまとめて部品と呼ぶことにします
2015年3月19日木曜日
2014年8月31日日曜日
Androidアプリ「HandySSH」公開
今日、Androidアプリ「HandySSH」をリリースしました。
GooglePlayに自分が公開するアプリとしては初めてということになります(個人用の駄作ならいくつもあるわけですが…)。
一日で作ったちっちゃいユーティリティーアプリですが、一応自分自身はこのアプリをどう使ってるのか、書いておきたいと思います。
GooglePlayに自分が公開するアプリとしては初めてということになります(個人用の駄作ならいくつもあるわけですが…)。
一日で作ったちっちゃいユーティリティーアプリですが、一応自分自身はこのアプリをどう使ってるのか、書いておきたいと思います。
2013年11月23日土曜日
Nexus7(2013) KitKatアプデでうちのBTキーボードが使用可能になった
こんにちは、wararyoです。
Nexus7のために以前からBTキーボードBSKBB15を買っていたのですが、いざNexus7を購入してみるとまさかの認識せず使用不能という事態に陥っており、半ば落胆しておりました。
しかし、今回のAndroid4.4 Kitkatアップデートでそれが認識するようになったのでその喜びを報告しておきます。
2013年10月31日木曜日
修理に出したNexus7が帰ってきた
![]() |
気になるところは全部消してます |
あれから約二週間後の10月中旬ごろようやく帰って来ていたのですが、
リアルが忙しく今日の更新となります。
タッチパネルの反応に満足がいかなかったNexus7でしたが、果たして少しは改善されたのでしょうか。
2013年10月11日金曜日
【Android】範囲選択用SeekBar2種類を試す
AndroidViewsをなんとなく見ていたら、RangeBarというちょっとワクワクするプラグインを発見。
しかしその下には、RangeSeekBarという似たようなプラグインが。
というわけで、その二つ両方を導入し、比較してみました。
しかしその下には、RangeSeekBarという似たようなプラグインが。
というわけで、その二つ両方を導入し、比較してみました。
2012年9月22日土曜日
【追記】ICSなISW11SCでUSBホストは使えるのか
さて、最近Galaxy S II WiMAX(ISW11SC)関連の記事ばっかり書いてます。
そして今回もそのISW11SCの話題です。
前の記事で、Android4.0ということは、USBホスト機能が使えるんじゃないか、なんて淡い期待を寄せている、と書きました。今回は、その検証です。
結論から言いますと、できないようですorz
■---追記---■
端末がUSBホスト機能に対応するにはOTGとかいうチップが必要らしく、
ISW11SCはハードウェア的に考えて使えないのは当たり前のようです。
無知晒してしまった。
■----------■
そして今回もそのISW11SCの話題です。
前の記事で、Android4.0ということは、USBホスト機能が使えるんじゃないか、なんて淡い期待を寄せている、と書きました。今回は、その検証です。
結論から言いますと、できないようですorz
■---追記---■
端末がUSBホスト機能に対応するにはOTGとかいうチップが必要らしく、
ISW11SCはハードウェア的に考えて使えないのは当たり前のようです。
無知晒してしまった。
■----------■
2012年9月13日木曜日
ICSなauスマホにFlashを!
先ほどGalaxy S II WiMAXをAndroid4.0にアプデした件を書きましたが、
一つ落とし穴がありました。
それは…
FlashPlayerがない!!
どこぞの林檎がFlashを排斥しようとしているせいもあるのか、社会全体がFlashを使わない方向に動いています。
でも、やっぱり、Web全体がFlash依存から脱出することは不可能だと思いますし、それだけFlashが今でも革新的なものであるというのは、否定することができません。
それに、個人的にはHTML5よりFlashのほうが好きです!開発もかんたんですし。
というわけで、やっぱりFlashないと困るでしょ。
でも今日のGooglePlayにもうFlashの姿はない。
docomoならdメニューからいけるみたいですが…
どうしよおおおおおおおおおおおおおおおおおお
そう思って調べてたところ、一つの抜け道を発見しました。
一つ落とし穴がありました。
それは…
FlashPlayerがない!!
どこぞの林檎がFlashを排斥しようとしているせいもあるのか、社会全体がFlashを使わない方向に動いています。
でも、やっぱり、Web全体がFlash依存から脱出することは不可能だと思いますし、それだけFlashが今でも革新的なものであるというのは、否定することができません。
それに、個人的にはHTML5よりFlashのほうが好きです!開発もかんたんですし。
というわけで、やっぱりFlashないと困るでしょ。
でも今日のGooglePlayにもうFlashの姿はない。
docomoならdメニューからいけるみたいですが…
どうしよおおおおおおおおおおおおおおおおおお
そう思って調べてたところ、一つの抜け道を発見しました。
(祝)ISW11SC Android4.0アップデート!
2012年9月12日、auからあるメールが届きました。
タイトルは「GALAXY S II WiMAX ISW11SCをご購入されたお客様へOSアップデートのお知らせ」
え!?まじで!?OSアップデートって…
と思ったら、やはりAndroid4.0だったのでした!
結論から言いますと、デザインはダサくなりますが、ないと困るようなアプリだけでも4.0に対応してることを確認した上で、 早くアップデートすることをおすすめします!
追記:バッテリー消費が早くなる、GPSの精度が悪くなるなどの症状があるみたいです。
タイトルは「GALAXY S II WiMAX ISW11SCをご購入されたお客様へOSアップデートのお知らせ」
え!?まじで!?OSアップデートって…
と思ったら、やはりAndroid4.0だったのでした!
結論から言いますと、デザインはダサくなりますが、ないと困るようなアプリだけでも4.0に対応してることを確認した上で、 早くアップデートすることをおすすめします!
追記:バッテリー消費が早くなる、GPSの精度が悪くなるなどの症状があるみたいです。
2012年6月16日土曜日
半透明Activityのフェードイン・フェードアウト
Activityを半透明にする方法と、Activityのアニメーションを適用する方法、どちらか片方には出来ても、両方実現する方法はなかなか載ってなくて苦労したので書いておきます。
とりあえずはanimationの作成です。今回はフェードイン・アウトで。
そして、アニメーションさせたいActivityのコードに少し付け足します。
overridePendingTransition に、先ほど作成したAnimationを指定しています。
onCreateの時に実行すると、フェードイン(第一引数)のアニメーションが実際に動き、
onPauseの時に実行すると、フェードアウト(第二引数)のアニメーションが実際に動くようです。
つまり、7行目の「R.anim.activity_fadeout」と、
13行目の「R.anim.activity_fadein」はおそらく意味がありません(笑)
なので、それぞれ「0」でも結構です(未検証)。
知ってる方は教えてくれるとうれしいです。
まずは半透明化
これは調べればすぐできるとは思いますが、<?xml version="1.0" encoding="utf-8"?> <resources> <drawable name="translucent_background">#88000000</drawable> <style name="Style.translucent" parent="android:style/Theme.Translucent"> <item name="android:windowBackground">@drawable/translucent_background</item> </style> </resources>こんな感じのを作って、ManifestでActivityのThemeに設定するだけです。
アニメーションはThemeにはしない
いろいろ検索してみた結果、Activtyにアニメーションをつけるとき、<style name="Style.Alpha" parent="android:Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/activity_fadein</item> <item name="android:activityOpenExitAnimation">@anim/activity_fadeout</item> <item name="android:activityCloseEnterAnimation">@anim/activity_fadein</item> <item name="android:activityCloseExitAnimation">@anim/activity_fadeout</item> </style>こんな感じのを作ってThemeに設定するのが主流のようですが、上記ではなくまた別の方法を使います。
とりあえずはanimationの作成です。今回はフェードイン・アウトで。
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="700" android:fillAfter="true" android:fillEnabled="true"/> </set>フェードアウトはコレのfromAlphaとtoAlphaの値を入れ替えたものをもう一つ作成。
そして、アニメーションさせたいActivityのコードに少し付け足します。
- package, import部省略 - public class Activity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); overridePendingTransition(R.anim.activity_fadein, R.anim.activity_fadeout); } @Override public void onPause() { super.onPause(); overridePendingTransition(R.anim.activity_fadein, R.anim.activity_fadeout); } }注目するのは7行目と13行目です。
overridePendingTransition に、先ほど作成したAnimationを指定しています。
onCreateの時に実行すると、フェードイン(第一引数)のアニメーションが実際に動き、
onPauseの時に実行すると、フェードアウト(第二引数)のアニメーションが実際に動くようです。
つまり、7行目の「R.anim.activity_fadeout」と、
13行目の「R.anim.activity_fadein」はおそらく意味がありません(笑)
なので、それぞれ「0」でも結構です(未検証)。
おわりに
もしかしたらThemeで半透明とアニメーションを両立させる方法があるのかもしれません。知ってる方は教えてくれるとうれしいです。
登録:
投稿 (Atom)