サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Switch 2
suka4.blogspot.com
レコメンドしたかったのでOpenSlopeOneを使ってみた。Cicindelaの方が色々できそうだけど、OpenSlopeOneのが手軽そうな印象だったので今回はこれを採用。 とりあえず、ダウンロードしてソースを見てみると、ソースは短いし、特に難しくもない印象。準備としては下記2つのテーブルを用意するだけ。 CREATE TABLE IF NOT EXISTS oso_user_ratings ( user_id int(11) NOT NULL, item_id int(11) NOT NULL, rating decimal(14,4) NOT NULL default '0.0000', KEY item_id (item_id), KEY user_id (user_id,item_id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE
Database イントロダクションにあるようにAPPPATH/config/db.phpに設定を書いて、Usageのようにqueryをexecuteしたのだけれど、 Fuel\Core\Database_Exception [ 1045 ]: Access denied for user 'root'@'localhost' (using password: YES) と言われて繋がりません。ユーザ名はrootなんかにしてないのに。。『さくらVPSでFuelPHPからmySQLへDB接続』の記事でも同様の現象か。さすがにpassをrootにしたくはない。 環境によって接続設定は変えないので、configの下にある下記dirを消してみたところ、APPPATH/config/db.phpの設定で無事に接続。 development production staging test あと、exe
以前に書いていたAndroid Notificationで通知をするで使っている下記2つの関数。 Notification(int icon, CharSequence tickerText, long when) void setLatestEventInfo(Context context, CharSequence contentTitle, CharSequence contentText, PendingIntent contentIntent) deprecatedになっていて、Notification.Builderを使えとのこと。 Notification.Builderを使って書き換える。 notification = new Notification.Builder(MainActivity.this) .setContentIntent(contentIntent).
色々と訳合って、CakePHPをやることになりそう。LAMP環境は整っているので、あとはCakePHPを用意しておく。 http://cakephp.jp/ CakePHPのサイトから落として解凍して、DocumentRoot直下にcakephpというディレクトリ名で移動して準備完了。 CakePHPのマニュアルの3.2.2に CakePHP は、幾つかの操作のために/app/tmpディレクトリを使用します。モデルのdescriptionや、ビューのキャッシュ、セッション情報などです。 なので、Cakeのインストール時には、/app/tmpディレクトリに書き込み権限があることを確認してください。との記述を見つけたので、app/tmp以下に書き込み権限を追加しておく。 で、ブラウザからcakephpにアクセスしてみると、 Forbidden You don't have permission
以前のエントリでListViewは一画面に一つしか持てないようだと書いていたので訂正しておく。複数持てる。 ListActivityにて扱えるListView(idが@id/android:listのListView)は一つのみ(※)ってことをListViewは一画面に一つしか持てないと誤認していた。 ※ListActivityではListViewが一つだけという意味ではなく別のidで振ってfindViewByIdしてやれば複数配置は可能。 一応、サンプル。特に難しいことはないが。 ListView novelList = (ListView) findViewById(R.id.novel_list); BookAdapter novelAdapter = new BookAdapter(this, novels); novelList.setAdapter(novelAdapter);
jQuery UIのアイコンが便利。ただ、アイコンの後ろに文字を続けたくても、改行されてしまうので調べたメモ。 こんな感じに記述すると <span class="ui-icon ui-icon-play"></span>再生 <span class="ui-icon ui-icon-pause"></span>一時停止 こう表示される。 再生 一時停止 firebugで見てみるとdisplay:blockのために改行されるよう。 styleを「display: inline-block」設定してやると、 <span style="display: inline-block" class="ui-icon ui-icon-play"></span>再生 <span style="display: inline-blcok" class="ui-icon ui-icon-pause"></sp
サービスでバックグランド処理させることができるらしい。何分起きに何かを確認とかそういった処理をできる。 さっそくサンプル作って理解する。 Serviceを継承したクラスを作る。onCreate,onDestoryでは固定メッセージ、onStartではintentでgetしたメッセージをToastで表示するだけ。 public class MyService extends Service { @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { Toast.makeText(this, "create service", Toast.LENGTH_SHORT).show(); } @Override public void onStart(Inte
少し疲れてきたので今日は閑話。 Androidの話題で相手の読み方と自分の読み方が異なっていて一瞬の間ができることがあった。特に意味はないが、読み方が異なったものを簡単にメモ。 Googleに文書の数、alcに発音・カナを聞いてみる。辞書に正解聞くだけじゃつまらんので、一般的(Webにある文書での)にどっちが多く使われているのかを見て比較。 ◆LinearLayout ・リニアーレイアウトとライナーレイアウト ・Google 429,000 件 vs 約 400,000 件 ・Alc 発音:li'niər、カナ:リニアー 使われる頻度は五分五分。けっこうライナーと読む人もいるんですね。linearの意味は「直線の」っていう形容詞。リニアモーターカーのLinear。ちなみに野球のライナーはlinerで名詞。アイライナーとかもこっち。 ◆RelativeLayout ・リラティブレイアウトとリ
WebViewはwebページ表示するために使うものと思ってたけど、htmlの文字列を渡して表示もできるってことに気づいた。htmlの方が慣れてるし、けっこう便利!ちょっとハマった点メモ。 使い方は簡単で、htmlのデータ用意して、loadDataするだけ。 WebView webview = new WebView(this); String data = "<html><head><meta http-equiv=\"content-type\" content=\"text/html;charset=UTF-8\"></head>"; data += "<body>ハロー</body></html>"; webview.loadData(data, "text/html", "UTF-8"); setContentView(webview); ヘッダにmetaタグで指定してやらないと文
ListViewでは複数のリストを表示できないので、複数リストを表示する方法を考えていた。前回で区切り線まで引いた。後はフォーカス時の色を変えれたらそれなりにリストっぽくなるだろう。 と、言うことでフォーカス時に背景色、テキスト色を変える方法を調べたのでまとめる。 ColorStateListを使えば状態による色を定義することができる。 状態には、 android:state_pressed android:state_focused android:state_selected android:state_checkable android:state_checked android:state_enabled android:state_window_focused がある。 定義リストをxmlで記述するのに注意しといた方が良いのは、このあたりか。 During each state
TabHostを使ったタブは戻るボタンで前のタブに戻るんじゃなくて、tab使ったアクティビティ起動前の状態に戻るので何か直感的でない。・・・ような気がする。少なくとも私の感覚的には前にいたタブに戻ってほしい。 何か良い方法はないか。 とりあえず困ったときはググってみる。 見つからない。良いクエリも思い浮かばないしな。 諦めた。調べるのは。 よし、自分で書いてみるか。 要は、戻るボタンを押されたイベントを奪ってしまえば良いんでしょ。で、前にいた状態にsetCurrentTabしてやればいけるはず。 まずはタブ遷移の履歴用のリストを用意して、タブが変わったイベントで履歴リストに追加する。 protected ArrayList<String> history; @Override public void onCreate(Bundle savedInstanceState) { super.o
とりあえず作ったAndroidアプリでつまずいたり調べたりしたことのまとめ3。 とりあえず作ってみたAndroidアプリの中で一番苦労した部分。そして、きっともっと良い方法はあるであろうやり方。Threadの理解が足りていないのが原因だろう。イケてないやり方だが自分の振り返り用に一応メモしておく。 まず検索部分は初めてのAndroid 第3版の7章「世界との接続」の4節「Webサービスの使い方」の翻訳アプリを参考にして、guiThreadとsearchThreadを用意した。本を読めばわかるので、詳細は省く。 guiThread = new Handler(); searchThread = Executors.newSingleThreadExecutor(); で、下までいったら次のリストを検索とは下記のようにしてListenerをセットした。SearchTaskは初めてのAndroi
重い処理にはキャッシュ。ということで、MemcachedをZend framworkで使用してみた。まずは、Zend frameworkのパッケージphp-ZendFrameworkでは、入らなかったのでインストールから。 # yum install --enablerepo=remi php-ZendFramework-Cache-Backend-Memcached # /etc/init.d/httpd restart apacheのリスタートをしないと、下記のようなエラーが出てハマる。 PHP Fatal error: Uncaught exception 'Zend_Cache_Exception' with message 'The memcache extension must be loaded for using this backend !' PHPでのキャッシュはフロン
WebViewについてのメモ。 ・戻るボタン押されたときに、前のページに戻すActivityのonKeyDownのオーバライドする @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_BACK && webview.canGoBack() == true) { webview.goBack(); return true; } return super.onKeyDown(keyCode, event); } ・ロードするURLに応じて処理をさせるWebViewClientを継承してonLoadResourceに処理実装する。それをWebViewにセット。 we
jQuery Mobile使うとスマートフォンっぽいUIにしてくれるのでまぁ便利なんだけど、微妙なところの調整が良く分からない。掲題の通りで、ボタン内のテキストを改行して全てを表示させたい。デフォルトだと「…」と省略されるので。 ぐぐるが、とくに解決方法みつけられないので、自力で頑張る。 .ui-btn-inner の 「white-space: nowrap;」が効いてるので折り返されないで表示されてる。 んで、ボタン内の文字列はspan.ui-btn-textに入れられるようなので、このスタイルを設定すればよさそう。 サンプル <style type="text/css"> div.ws-normal span.ui-btn-text { white-space:normal; } div.ws-pre span.ui-btn-text { white-space:pre; } </s
連日だが、日本語でまたも苦しむ。PDFで日本語が表示されないのだ。既存のドキュメント・ビュアーなるもので見てたのでAdobe Readerを入れることにした。それが、またなかなか時間掛かったので、メモしておく。ちなみに結論としてはUbuntuは64ビット版だったのが、苦労の原因のよう。 まずは、Adobe Reader日本語版ダウンロードページよりダウンロードしてインストール。 http://get.adobe.com/jp/reader/ と、思ったのだが、どうも32ビット版しかないようで、入れられず。 apt-getでも当然adobereader-jpnはいれられず、acroreadを入れることにした。 # apt-get install acroreadで、日本語が表示できなかったPDFを開くと下記のメッセージ。 未だに日本語表示できず。。で、言われる通りに下記にアクセス。 http
ニコニコ動画を聞こうとしたら、Flashのアップデートの指示。たかが、Flashアップデートだが、また色々と手間取ったものでメモ。 Flashのダウンロードページに行くと 64 ビットユーザー: Adobe Labs から Flash Player(64 ビット Linux ネイティブサポート)のプレビューリリースをダウンロードしてください。とのこと。よくよく調べてみると今までも64ビット版じゃないものが入っていたので、64ビット版を入れ直すことに。http://simos.info/blog/archives/804を参考にインストール。 $ sudo apt-get remove flashplugin-installer $ sudo add-apt-repository ppa:sevenmachines/flash $ sudo apt-get update $ sudo apt
▼ 2020 (8) ▼ 9月 (1) Python実践データ分析100本ノックを読んでみてメモ ► 8月 (1) ► 6月 (1) ► 5月 (1) ► 3月 (1) ► 2月 (2) ► 1月 (1) ► 2019 (5) ► 12月 (5) ► 2016 (7) ► 12月 (2) ► 11月 (1) ► 5月 (2) ► 4月 (1) ► 1月 (1) ► 2015 (27) ► 9月 (2) ► 8月 (2) ► 7月 (1) ► 6月 (2) ► 5月 (3) ► 4月 (2) ► 3月 (3) ► 2月 (5) ► 1月 (7) ► 2014 (62) ► 12月 (5) ► 11月 (3) ► 10月 (3) ► 9月 (4) ► 8月 (7) ► 7月 (6) ► 6月 (5) ► 5月 (4) ► 4月 (8) ► 3月 (6) ► 2月 (7) ► 1月 (4) ►
PhoneGapはHTML+CSS+JavaScriptでAndroidやiPhoneなどのアプリケーションを開発できるフレームワークで、DrodiGapってのはPhoneGapでの開発に必要なファイルを生成してくれるテンプレート生成ツール。 DrodiGapではWebアプリをAndroidアプリに変換もできるようなので、ちょっと試してみる。 参考:5分で作るAndroidアプリケーション まずは準備。Webアプリがないので作る。動画と同じにしてLightsOutで良いけど、せっかくなのでjQuery Mobileの勉強がてら適当に作る。 とりあえずなんとなくオークション検索APIにリクエストして結果を表示するだけのWebアプリを書く。 下記index.htmlが1つあるだけのシンプルなアプリ。細かい処理やエラー処理はしていない。 <html> <head> <meta http-equi
PHPでMediawiki記法をHTMLに変換するのにText_Wiki_Mediawikiを使ってみた。 ちょっと使い方がわからなくWikilinkの変換で手間取ったのでメモを残しておく。 まずはインストール。 # pear install Text_Wiki_Mediawiki-0.2.0 サンプルと結果(No Good) <?php require_once "Text/Wiki/Mediawiki.php"; $wiki=new Text_Wiki_Mediawiki(); $text = " *[[hoge]] *[[hoge:fuga]] *[[hoge:piyo|piyo]] "; echo($wiki->transform($text,'Xhtml')); 実行結果: <ul> <li>hoge<a class="" href="http://example.com/new
AFreeChartで円グラフを描いたが、ラベルを消せなさそうとか気になる部分はあった。他のライブラリだとどうなのかと思ったので、achartengineを使ってみる。achartengineはライセンスはApache License 2.0。 また、日本語のドキュメントは見つけられないのでとりあえずサンプルを読む。まず読むのはChartDemo.javaとBudgetPieChart.javaあたりかな。BudegetPieChartのexecuteで(ChartFactory.getPieChartIntentで)返すintentをChartDemoではstartActivityしている。 IntentじゃなくてViewを返して欲しいなぁと思って見てると、ChartFactory.getPieChartViewってのがあった。GraphicalViewを返してくれるようだ。 サンプルは
Notificationを使って通知してみる。Notificationとはステータスバーに表示されるヤツ。 簡単にサンプル。 ※2012/8/19 追記 deprecated。Notification.Builder版はこちら→『Android Notificationで通知をする 2』 mNotifyButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(MainActivity.this, MainActivity.class); PendingIntent contentIntent = PendingIntent.getActivity( MainActivity.this, 0, inte
AndroidのテーマはAndroidManifest.xmlに設定する他にもsetThemeでも設定できるようなので試す。 初めから用意されてるテーマは、@android:style/Theme.Blackと@android:style/Theme.Liteの2つ。 テーマは独自に定義できるが、とりあえず今回はあらかじめあるLiteを適用させる。 android developersでsetThemeを見ると下記の注意。 Note that this should be called before any views are instantiated in the Context (for example before calling setContentView(View) or inflate(int, ViewGroup)).このメソッドはContextにViewがインスタンス化さ
ImageViewをLevelによって画像を変えることができるらしい。バッテリーの残量だったり、降水確率だったり、数値によって画像を変えたいときに使える。 Levelによって画像を変えるには、Level List - Drawable Resources | Android DevelopersのXMLを定義してやる。 syntax: <?xml version="1.0" encoding="utf-8"?> <level-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/drawable_resource" android:maxLevel="integer" android:minLevel="integer" /> </level-l
左の画面がデフォルトとカスタマイズのSpinnerを並べたもの。 中の画面がデフォルトのSpinnerの項目選択。 右の画面がカスタマイズのSpinnerの項目選択。 ・Spinnerの見た目はbackgroundで画像を指定する。 <Spinner android:id="@+id/spinner" android:layout_margin="5dip" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Spinner android:id="@+id/myspinner" android:layout_margin="5dip" android:layout_width="fill_parent" android:layout_height="wrap_content" androi
CheckBoxをカスタマイズする。CheckBox使おうとしたらサイズが大きく、他の部分で文字小さくしていて調和が取れなかったため。カスタマイズと言うか小さくしたかっただけ。 とりあえず画像をどこかから用意する。とりあえず前回のGimpの勉強で作ってみた画像を使う。on,offのそれぞれフォーカスされてるされてないバージョンの4つ。つくった画像はdrawableに突っ込む。 で、mycheckbox.xmlでstateによってどの画像を使うかを定義。 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:state_pressed="true
以前に「複数のリストを表示する」ってのを書いたが、また別の方法があったので書いておく。「複数のリスト」という言い方が間違ってる気がしてきたが、やりたことは前回のときに表示したかったもの。 ListViewのViewをpositionによって変えることで、見出し行は見出しのビューで、項目の行は項目のビューを使えば見ため的には同じようには見える。ただし、プログラム的には複数のリストではなく、1つのArrayList。 今回の例での表示はこんなん。著者と作品のリスト。著者が見出しにあたる。 ListActivityを継承したメインのactivityではこういった形でリスト登録。 novels = new ArrayList(); novels.add(new Novel("夏目漱石", "", 0)); novels.add(new Novel("吾輩は猫である", "漱石の処女作であると共に、
小遣い帳アプリに写真保存機能追加でテーブルにカラム追加が必要になった。WebシステムでのMySQLに置き換えて考えてしまうと、システムをメンテナンスモードにしてその間に直接SQL文を流して追加したり変更したりすると思うがAndroidアプリのSQLiteの場合だと少し勝手が違う。 方法はいくつかあるのだろうが、小遣い帳アプリでは初めてのAndroid 第3版の9.3.1のようにSQLiteOpenHelperのサブクラスとして実装してるので、それを前提とする。 バージョンがあがったときのテーブル定義変更はonUpgradeメソッドに実装してやれば良い。「初めてのAndroid」では、下記引用のような例になっている。 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.
とりあえず作ったAndroidアプリでつまずいたり調べたりしたことのまとめ2。 Androidアプリを開発していて苦労したことの一つはデザイン周り。なかなか思うように表示できない。layout_widthとかlayout_heightとか、wrap_content、fill_parent、match_parentなどなど。いちいと調べないとすすまない。サンプルなどの勉強ではそのまま真似しててそれほど理解できてなかったってこと。。 このデザイン周りでイライラしたのは、デザインのfill_parentとwrap_contentとが違う位で、アプリケーションがエラーになること。デザイン崩れつつも頑張って表示してくれてもいいじゃん。と思ってしまうのはWebアプリだとブラウザで崩れつつ表示してくれたせいかな。htmlを返すだけで表示はブラウザが行っていたWebアプリと、表示まで行うandroidアプ
このページを最初にブックマークしてみませんか?
『suka4's memo』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く