UnityでOpenCVを使用する場合、
AssetStoreで販売されているOpenCV for Unityを使用するか、
自前でC++などでUnityネイティブプラグインを開発するかの2つ方法があります。
OpenCV for Unityは自分は使ったことはありませんが、言及しているブログも多く、
マルチプラットフォームそれぞれ用にネイティブプラグインを作るのが面倒くさかったりする場合は
お金で解決してしまった方が手っ取り早いかもしれません。
さて、今回の内容は、
いやAssetStoreに頼らず自分でネイティブプラグイン作ってみたい!
とか、お金がない!
などといった事情をお持ちの方向けとなってます。
先日こんなアプリをリリースしました。
レビューも頂きました!! 本当に有り難うございます!
Androidアプリ発見サイト -Appliv様
アンドロイダー様
自分自身でずっと欲しいと思っていたアプリです。
なので自分が使えればそれだけでも良いんですが、無駄にフォロー機能とか付けてます。
いや無駄ではないんですけどね。
良かったら使ってみてくださいませ。
たくさんの人に使ってもらえたらiOS版のリリースが早まります。はい。がんばります。
去年、MovieAlarmというAndroidアプリをリリースしました。
これはYouTubeから自分の好きな動画を選んでアラームに設定できるって言うアプリです。
リリースしただけで半年ほど放置していたのですが、
この度、心機一転装いも新たにVideoAlarmという名前でアップデートしました。
(随分ブログに書くのが遅くなってしまいましたが…)
好きなアーティストのPVなんか設定しておくと割りといい感じです。
無料なのでみなさん是非使ってみてくださいね^^
最近更新頻度が落ちている。
一時期は「毎日更新しなきゃダメだよね。」とか言ってたのに。。。いかんいかん。
さて、本題だが、
今回はAndroidレイアウトの簡単なメモ。
VideoViewとそれを制御するMediaControllerについて。
とくに何も考えずにVideoViewを使うとMediaControllerが画面の最下部に表示されてしまう。
VideoViewの高さを指定したり、MediaControllerのマージンを設定したり、いろいろ試したが、
結局VideoViewとMediaControllerの間に出来る隙間は一体なんなのか解らずじまい。
もうMediaControllerは表示できる一番下に表示されるものだ、と割り切って、
VideoViewとMediaControllerをLinearLayoutで囲む事にした。
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:id="@+id/linear_layout" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <VideoView android:id="@+id/video_view" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <MediaController android:id="@+id/controller" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="visible" /> </LinearLayout> <Button android:id="@+id/setting" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:text="@string/setting_btn" /> </RelativeLayout>
上手くいった。
もう本日になってしまいましたが、いよいよABC 2012が開催されますね。
先日投稿した通り、今回、自分の初Androidアプリを出品させて頂いてます。
(Google Playの開発者登録って半日くらいかかるんですね。間に合わないかと思った(^_^;))
昨日やっとリリースしました。
これです。どうぞよろしくお願いします。
実はこれ、某アプリコンテストように企画したものです。
(ま、コンテストの結果は鳴かず飛ばずでしたが…。)
ということもあり実装期間が1ヶ月くらいしかなかったのでアイデアを思いつき次第、直ぐに最低限の機能だけ実装する事にしました。
コンテストが終了してからまた1ヶ月くらいあったので細々した所を直して行きました。
初めてのAndroidアプリでしたが、このアプリではAndroid SDKの基本から、Androidの機能(GPSなど)とかFacebookやGoogle MapなどのAPI連携、DBサーバとの通信などなど色々な事を実際に試せたのが良かったかと。
勉強会などでいろいろな方にアドバイスいただきなんとか完成させる事が出来ました。
みなさん、本当に有り難うございました。
自分で作っておいて言うのもなんですが、今の時点ではあまり「使えるアプリ」とは言い難いかな、と思ってます。
こういうアプリは「1人でも使えてみんなで使うとより楽しい」って感じにしないとユーザ数が伸びないと思います。
現状では「1人でも使える」機能がありません。
それにこのアプリの需要が有るのか自体疑問でした。
なのでまだまだ至らない点が多いアプリですが取り敢えず公開してしまおう! ということで今回リリースしちゃったわけですw
需要があれば色々改善して行くので、何かご意見ご感想等有りましたらお気軽に。
このブログにコメントして頂くか、またはcontact☆design-ambience.com(☆は@に変えてください)までよろしくお願いしますm(_ _)m
というような背景もあり今のところマネタイズはあまり考えてません。
次はもっと多くのユーザに使って頂けるような企画をしてちゃんと練って、実装して、マネタイズまで行ければと思います。
次はAndroidのセンサー系とかマルチタッチなんかに挑戦したい。
AndroidのTextViewとかLinearLayoutで括ったViewをごそっと移動させる方法が解らなかったのでメモ。
Viewを移動させることでページ遷移に見せかけるというような使い方をしています。
要はJavaのコードの中でViewの位置を再定義しているだけなんですけどね(^_^;)
ボタンを押すとViewの位置が変わるだけという、凄くシンプルなサンプルを張っておきます。
主題と少し離れますが、LinearLayoutでは「android:orientation=”vertical”」という様にorientationを指定してやらないと意味不明な見た目になってしまいます。
これでかなりハマってしまいました(~_~;)
package com.android.sample_app; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; public class SampleAppActivity extends Activity { Button moveBtn; LinearLayout layout; TextView helloTxt; TextView description; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 要素の取得 moveBtn = (Button) findViewById(R.id.move_btn); layout = (LinearLayout) findViewById(R.id.layout); } public void move(View v) { int topMargin = 100; layout.layout(0, topMargin, layout.getWidth(), topMargin + layout.getHeight()); } }
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="400dip" android:layout_height="900dip" android:orientation="vertical" > <Button android:id="@+id/move_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/move_btn" android:onClick="move" /> <LinearLayout android:id="@+id/layout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:background="#123456" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="hello" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="hello" /> </LinearLayout> </LinearLayout>
先日『知名度ゼロ資本力なし それでも、あなたのiPhoneアプリでランキング1位を獲る80の秘訣』という本を購入しました。
自分が今取り組んでいるのはAndroidアプリですがiPhoneアプリのノウハウが使えるようです。
お世話になっている方からの猛烈なプッシュもあり購入しました。
心構えから対策方法まで具体的に書かれています。
冒頭ではアプリビジネスに取り組むメリットや成功した後の明るい未来について力強く語られており、半ば半信半疑(ごめんなさいw)ながらもやる気を引き起こされます。
しかし割りのいい話ばかりが書いているわけでもなく、時には結構シビアなことも書かれています。
80もの秘訣を全部やるのは大変そうですが、頑張って1つずつこなしていけば本当にランクインしそうな内容です^^
(ここではその内容は書けませんが。興味のある方は書店で笑)
結局、要はやってみる事が大事ですね。
今月末には初Androidアプリをリリースできそうなので大いに役立たせて頂こうかと思います。
画像をボタンとして使用する時、タッチされたらへこんだ様な画像に差し替える事で、
押した感を表現したい。
用意するのは画像2枚(通常時、押された時)とxmlファイルだけで対応できる。
はじめてxmlファイルをボタンとして定義できると知ったときは不思議な感じだった。ちょっと感動した笑
通常時画像:normal.png
押された時画像:pressed.png
ボタン定義xml:botton.xml
を全部res/drawableに入れておけば良い。
botton.xmlの例はこんな感じ。
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@+drawable/pussed"> </item> <item android:drawable="@+drawable/normal"> </item> </selector>