サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
team-pag.interprism.co.jp
View上において、ジェスチャー操作を扱うためのクラスGestureDetectorと スクロール処理を扱うためのクラスScrollerを組み合わせた使用例を示す。 アプリの概要は以下の通りである。 ・画面をタッチして指を移動したとき、それに追従する図形を描画する。 ・そこからさらに、はじくような操作をしたときに図形を慣性スクロールさせて描画する。 最終的なイメージは以下のようになる。 このサンプルのレイアウトxmlは以下のようになっている。 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout
Viewを継承した独自のカスタムビュー内のレイアウトをxmlで定義することができる。 レイアウトに関する事はJavaコードで書くよりもxmlで定義しておいたほうがコード量が減るし、後々メンテナンスしやすくなる。 今回はこの方法について見ていく。 まず、サンプルアプリの完成形となる画面を示す。 画面上部に表示された赤色の部分がカスタムビューとなっている。 テキストビューとその下に3つボタンがあって、それぞれのボタンを押すとテキストビューに押したボタンのテキストが表示されるようになっている。 まずは、このカスタムビューに適用するレイアウトxmlを示す。 myview.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/andro
久しぶりの技術ネタ。 「Android 単語帳 Widget」でも使用しているのですが 端末のロケールそのもをOSごと変更するにはパーミッション必要だけど アプリケーション内のロケールを変更する方法も実はあります。 想定するユースケースとしては 外国で端末を買ったけど(当然日本語ロケールは無い)とかの場合、 MoreLocale2とかでOSのロケールをむりやり替える方法もあるが、 アプリが日本語対応しているなら日本語で見たいとか 逆に、国内でも英語で使いたいとかあるかと思う。 その場合は以下のメソッドを実装して呼び出してあげればよい。 private void setLocale(Locale locale) { Locale.setDefault(locale); Configuration config = new Configuration(); config.local
.NET4.0で追加されたAPIによってテキストファイルの読み込み処理が楽に書けるようになった。 以前はファイル読み込み処理といえば以下のように書いたものである。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace FileApiLesson { class Program { static void Main(string[] args) { using (StreamReader sr = new StreamReader("test.txt")) { String line; while ((line = sr.ReadLine()) != null) { Console.WriteLine(line); }
前回の記事でC#でSQLiteが使えるようになった。 今回は、さらに進めてDataGridViewにテーブルの内容を表示してみる。 まずアプリの画面構成を示す。 前回のアプリの画面にDataGridViewを配置している。 このDataGridViewにテーブルのデータを表示させる。 コードは以下のようになる。 Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SQLite; namespace SqliteLes
AndroidManufest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.lesson.camera" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name="com.lesson.camera.MainActivity" android:label="@string/app_name" android:screenOrientation="
xamlと同等の内容をC#のコードで書いてみる。 今回のサンプルとなるのは以下のようなプログラムである。 画面の真ん中にGeometryで描いた画像が配置してある。この画像にはRenderTransformがセットしてあり、 回転値は下に配置したスライダーの値にバインディングされている。 それではまず、このプログラムをxamlで書いた場合はどうなるかを示す。 MainWindow.xaml <Window x:Class="XamlCodeLesson_xaml.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350"
EclipseでAndroidアプリの開発をしているのだが、あるとき、ソースコードには どこにも問題がないのにプロジェクトに原因不明のコンパイルエラーが 出るようになってしまった。 ネットで調べてみると、そういう場合は「Project」 > 「Clean」で直るらしい。 早速実行してみる。しかし依然直らない。 その後何度Eclipseを再起動したりしても駄目だった。 気を取り直してProblemsビューを見ると、 Error generating final archive: Debug certificate expired on ~ と表示されていた。 これはデバッグ用証明書(debug.keystore)の有効期限切れが原因らしい。 これに対処するには既存の証明書を削除すれば良い、との事。 証明書のパスは「Window」 > 「Preference」 > 「Andro
Viewをタッチすると移動させることができるUIを考えてみる。 ツールボタン的なUIに活用できるかもしれない。 これを実現するためには、サンプルプログラムのように実装したOnTouchListenerを移動させたいViewへセットしておけばよい。 移動対象のViewはRelativeLayoutの子Viewとなっており、タッチイベントでLayoutParamsのtopMarginとleftMarginを書き換えている。 複数のViewに同じリスナを登録すれば、それぞれのViewごとに移動させることができる。 MainActivity.java public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCre
SlidingDrawerはAndroidSDK1.5から使えるようになったユーザーインターフェースで 一つのハンドルと、画面外に隠れたUIの2つの部品で構成されている。 ハンドルをスライドすると、その先に隠れているUIを引き出すことができる。 以下はSlidingDrawerを使ったレイアウトxmlの例である。 分かりやすいようにするために各Viewには適当に背景色を付けておいた。 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="
Androidを学び始めた頃は一つのActivityに対しては一つのレイアウトxmlしか割り当てられないものと思っていた。 だが、LayoutInflaterを使えば動的にレイアウトxmlからViewを生成できることが分かった。 LayoutInflaterはActivityのgetLayoutInflater()メソッドで取得できる。 以下にInflaterのサンプルを示す。 このサンプルは、2つのボタンを押すことでLinearLayout内のView要素を書き換えている例である。 public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState)
JavaSE6の標準機能でJavaScriptを実行させることができる。 それを実現するにはScriptEngineクラスを使う。 JavaScriptの関数をJavaから呼んだり、 JavaのメソッドをJavaScriptから呼んだりすることもできる。 サンプルを以下に示す。 public class Main { /** * @param args */ public static void main(String[] args) { ScriptEngineManager sem = new ScriptEngineManager(); // JavaScriptのScriptEngineを取得する ScriptEngine se = sem.getEngineByName("JavaScript"); if( se == null ){ System.out.println(
以前にAndroidのコンボボックスであるSpinnerのバグを紹介しましたが、 今度は使い勝手も悪い事が最近の頭痛の種です。 というのも、EditTextとかはandroid:enabledというのでViewの有効無効を切り替えられるんだが Spinnerにはそもそもandroid:enabledがない。 よく条件を満たすまでSpinnerを選択させないためにenabledで制御する方法なんか考えられるが enabledがないのでadapter側で制御させるしかない。 もしくは、条件をみたしたら、adapterを設定して使えるようにしてやるしかない。 Spinner恐るべし。 タグ: Android, SDK, Spinner, 開発 コメントはまだありません » 久しぶりに開発ネタ。 つい先日、表題のSpinnerのバグでハマったのでお知らせついでに書いときます。 Andr
以前にJavaSEでSocket通信のプログラムを書いた。今度は、AndroidでSocket通信をしてみる。 と言っても、コーディングはJavaSEとまったく同じやり方で出来るのだが、Androidの場合はSocket通信をするためにパーミッションを設定しておく必要がある。 まずは、AndroidManifest.xmlに以下のパーミッションを追記する。 <uses-permission android:name=”android.permission.INTERNET” /> 次に、以下のような画面を作ってみた。 Sendボタンを押したときにサーバーと正しく接続できれば、テキストボックスに入力した値をサーバーへ送信するようになっている。 このレイアウトxmlのソースは以下のようになる。 main.xml <?xml version="1.0" encoding="utf-8"
先に書いたエントリーでICONIA TABを起動するところまでは完了。 遊ぶ前にPCに接続じゃ! とうことで、サイトからWin用のドライバをダウンロードする http://www.acer.co.jp/ac/ja/JP/content/drivers からドライバーをダウンロードする。 結構デカイのでゆっくり待とう。 解凍してsetup.exeを叩く。 このとき、PCにICONIA TABを接続しておいてはダメ。 トントントンとインストールする インストール完了 で、例によってADBのUSBドライバに手書きで登録しないといけない。 %ANDROID_SDK_HOME%\extras\google\usb_driver にあるandroid_winusb.inf をエディタ等で編集する 一応私が書いたものを記載します。 Win7(x64)環境です。 セクションGoogle.NT
Androidでは、Viewを配置する時は基本的に相対位置で指定する。 Androidの場合は端末によって解像度がまちまちなため、相対位置で指定することは理にかなっている。 しかし、時には絶対位置で指定したいこともある。 以前はそれを実現するためのAbsoluteLayoutというものがあったがSDK1.5以降、非推奨となってしまった。 Androidはソースが公開されているからAbsoluteLayoutのソースを参照して自前で実装する、というのも 対応策の一つではあるが、そこまでしなくてもRelativeLayoutを使うことで十分代替できる。 どうするかというと、layout_marginTopとlayout_marginLeftを使って以下のように指定すればよい。 main.xml <?xml version="1.0" encoding="utf-8"?> <Line
以前にこんな記事を書いたのだが、この疑問について自分なりの考えがまとまってきたので書いておこうと思う。 なお、サンプルで示したプログラムはAndroidだが、Swingの場合でも結論は同じである。 ボタン等のアクションに応答するためのイベントリスナを書く方法はいくつかある。 ①ボタンを保持するクラスに直接アクションリスナの実装を書く方法。 public class MainActivity extends Activity implements OnClickListener { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContent
AsyncTaskは、何かしらの重い処理(大きなファイルの読み込みやインターネットからのデータの取得等々)を行うとき、 UIスレッドを止めないようにするために使うクラスである。 もしUIスレッド上でこれらの重い処理を行うと、UIの表示が固まったように見えてしまい、操作性が良くない。 そこで、AsyncTaskを用い、重い処理は別のスレッドで行うようにし、UI側ではプログレスバー等を表示しておいて 別スレッドでの処理が終わったらプログレスバーの表示を消して元の操作に戻れるようにするようなプログラムを書いてみる。 以下がそのプログラムである。 package com.lesson.progress; // インポートは省略 public class Main extends Activity { /** Called when the activity is first created
Android端末の外部メモリー(SDカード)とか内部メモリーの容量と残量を取得するアプリのソースコードを サンプルとして今回は公開してみたりします。 サンプルのアプリとしては使っていないが、外部メモリーのマウントポイントもとれるメソッドもありますよ。 このサンプルはAndroidは1.6以上で動きます。 このサンプルのポイントは Androidアプリのサンプルとして コンパチビリティー・モードの解除 外部メモリーの存在可否 外部メモリーの総容量(Total Size) 外部メモリーの残容量(Available Size) 内部メモリーの総容量(Total Size) 内部メモリーの残容量(Available Size) Android OSのバージョン番号取得 タイマーによる描画更新 オプションメニューの表示とその処理法 という感じに多くの機能というかサンプルを盛り込んでみました。
なるだけ通信費を節約する為にWiFiでPCに接続して PCとAndroid携帯を同時にインターネットさせて通信費を節約したいものです。 また、3G回線のない端末などもPCを経由させてインターネット接続できればいいなぁ なーんてことがあるかと思います。 もちろん、WiFiルーターなどの無線Lanアクセスポイント(AP)があればPCにそんなこと必要ないんですが 「PCでWiMAXに繋いでいるから、そこを経由したい」などまあニッチで有る意味コアな内容ですが 挑戦したんで忘れないように書いときます。 まず、押さえておきたいのは現在のところ、Android端末の多くはアドホックという直接PCに繋いだりする方法が 使えないようになっている。 (rootedという荒業もあるが、それはメーカー保障を受けられなくなってしまう) なのでノートパソコンに内蔵されている無線Lanアダプタをアドホ
以前からこのブログのサーバから収集したUserAgentを公開していましたが コメント方式で増やしていったのですが やや見づらくなってきたので一度まとめて皆さんに見やすいようにしようと思い 表形式にまとめてみました。 通信キャリア 端末名/型番 製造メーカ OS UserAgent
sonyericssonのExperia(注意!音が出ます)のFlashがすごくて少しずつパーツを似たものを作ってみようと思った^^ いやぁぁこのFlashセンスがいいwww 私が作るのとはかけ離れた世界である・・・・・w というか、、手書きで絵を描くのがそもそも私の場合間違いなのか・・・ 仕組みとしてはテキストを一度ビットマップデータにしてfor文で1ピクセルずつ取得して、元の位置に徐々に戻す みたいなかんじです^^ クリックするともう一度みれます^^ らせん状にぐるぐる^^ 真ん中にこの前のくまさんをww あ、、テクスチャの色が微妙に違うのがばれてしまう・・・ めんどくさくて画像はってないんだ・・・w まぁご愛嬌ということでw 螺旋の仕組みは意外と簡単^^表示するオブジェクトのループの中でjが回ってる数ね^^ そのオブジェクトの表示位置の角度を計算^^ var rot:Nu
このページを最初にブックマークしてみませんか?
『team-pag.interprism.co.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く