Home > プログラム

プログラム Archive

[Android] レイアウトでViewを両端に配置する方法

レイアウトでViewを両端に配置する方法はいくつか存在しますが、ここで紹介する方法が一番シンプルで分かりやすい気がします。

方法はコードを見てもらえば一目瞭然ですが、配置する2つのViewの真ん中に「android:layout_weight」を”1″にしたViewを埋め込むだけです。
 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp">
        
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="左" />

        <View 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
        
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="右" />

    </LinearLayout>

</LinearLayout>

 

Continue reading

[Android] エミュレータと外部とのソケット通信

ソケット通信のテストを行う際にエミュレータと外部との間で通信できると何かと便利ですが、エミュレータはエミュレータ内部で閉じたネットワークを形成しておりデフォルトでは外部との通信ができない状態になっています。

外部との通信を行うには以下の手順を踏む必要があります。

  1. エミュレータ起動
  2. telnetでエミュレータに接続
  3. redirコマンドでポートフォワード

 

Continue reading

[Android] テキストへのリンク設定

TextViewに表示したURLにリンクを張るには次の2通りの方法があります。

  • レイアウトファイルでautolink属性を使う
  • プログラムでHTMLタグを埋め込む

 

レイアウトファイルでautolink属性を使う

TextViewタグにautolink属性を指定することでリンクを張ることができます。

<textview
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:autolink="web"
    android:text="http://google.co.jp" />

 
autolink属性ではURL以外のリンクを張ることもできます。
設定値およびリンク種別の対応は次の通りです。

設定値 リンク種別
web URL
email メールアドレス
phone 電話番号
map 住所
all 上記全て

 

Continue reading

[Java] 現在日時の取得

現在日時の取得には次のような方法があります。

  • Dateクラスを使って取得
  • Calendarクラスを使って取得

 

Dateクラスを使って取得

オブジェクト作成時にDateクラスの引数なしコンストラクタを使うことで現在時刻が設定されたDateオブジェクトを取得できます。

public String getCurrentDateString()
{
    //==== 現在時刻を取得 ====//
    Date date = new Date();

    //==== 表示形式を設定 ====//
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

    return sdf.format(date);
}

 

Continue reading

[Android] メニュー処理

メニューボタンを押したときに出てくるメニューの実装方法を簡単にまとめてみました。
 

メニュー表示

Activityクラスの onCreateOptionsMenu() をオーバーライドし、この中にメニュー表示処理を実装していきます。
このメソッドは引数としてMenuオブジェクトを受け取るので、このオブジェクトに対してメニュー項目を追加していきます。

なお、このメソッドはメニューボタン押下時に一度だけ呼び出されます。

public class HogeActivity extends Activity
{
    //==== メニューID ====//
    private static final int MENU_ITEM1 = Menu.FIRST;
    private static final int MENU_ITEM2 = Menu.FIRST + 1;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        menu.add(Menu.NONE, MENU_ITEM1, Menu.NONE, "item1");
        menu.add(Menu.NONE, MENU_ITEM2, Menu.NONE, "item2");
        return super.onCreateOptionsMenu(menu);
    }
}

 

Continue reading

[Android] SDK Managerがうまく機能しないときは・・・

SDK Managerでライブラリなどをインストールする際に、以下のようなログが出力されてライブラリ情報の取得に失敗することがあります。

Fetching https://dl-ssl.google.com/android/repository/addons_list-1.xml 
Failed to fetch URL https://dl-ssl.google.com/android/repository/addons_list-1.xml, 
reason: Unknown Host dl-ssl.google.com 
Fetched Add-ons List successfully 
Fetching URL: https://dl-ssl.google.com/android/repository/repository-5.xml 
Failed to fetch URL https://dl-ssl.google.com/android/repository/repository-5.xml, 
reason: dl-ssl.google.com 
Fetching URL: http://dl-ssl.google.com/android/eclipse/site.xml 
Failed to fetch URL http://dl-ssl.google.com/android/eclipse/site.xml/addon.xml, 
reason: dl-ssl.google.com 
Done loading packages. 

 

このような場合はプロキシでアクセスが弾かれている可能性があります。

SDK Managerのメニュー [Tools] – [Option] を開いてプロキシ設定を行ってみると解決するかも・・・。
 
 

[Android] タイマーの使い方

時間経過や一定間隔での処理を行う場合にはタイマーがよく使われます。
今回はタイマーの基本的な使い方をまとめてみました。
 

タイマー機能はTimerクラスおよびTimerTaskクラスにまとめられています。
大まかな処理の流れは次のようになります。

  1. Timerオブジェクト作成
  2. Timerクラスの schedule() もしくは scheduleAtFixedRate() でタイマー起動
  3. Timerクラスの cancel() でタイマー停止&破棄

 

Timerオブジェクト作成

Timerクラスにはいくつかのコンストラクタが定義されています。

メソッド 説明
Timer() ユーザースレッドで動くタイマーオブジェクトを作成する。
Timer(boolean isDaemon) 指定されたスレッド種別で動くタイマーオブジェクトを作成する。
Timer(String name) 名前付きユーザースレッドで動くタイマーオブジェクトを作成する。
Timer(String name, boolean isDaemon) 指定された種別の名前付きスレッドで動くタイマーオブジェクトを作成する。

 
isDaemon という引数を取るコンストラクタがありますが、これはスレッド種別を指定するものです。
この辺りはスレッドに関する知識が必要になってきますので、簡単に説明しておきます。
 

Continue reading

[Android] ScrollViewのスクロールいろいろ

ScrollViewでスクロール位置を操作する方法。

最上部にスクロール

    scrollView= (ScrollView)findViewById(R.id.scrollView1);
    scrollView.post(new Runnable()
    {
        public void run()
        {
            scrollView.fullScroll(ScrollView.FOCUS_UP);
        }
    });

 

最下部にスクロール

    scrollView= (ScrollView)findViewById(R.id.scrollView1);
    scrollView.post(new Runnable()
    {
        public void run()
        {
            scrollView.fullScroll(ScrollView.FOCUS_DOWN);
        }
    });

 

Continue reading

[Android] ボタンの見た目をカスタマイズ

規定のボタンデザインを使ってもいいのですが、物足りなく感じることはないでしょうか?
どうせ自作アプリを作るなら、ボタンもオリジナルの見た目にしたいですよね。

そこで、今回はボタンの見た目を変更する方法について。
 

背景色の変更

android:background属性に背景色を指定するだけでも見た目がガラっ(?)と変わります。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <Button
        android:layout_width="100dp"
        android:layout_height="40dp"
        android:background="#00FF00"
        android:text="Hoge" />
</LinearLayout>


 
アルファ値を0にしたARBG値(#00000000など)を指定すると透明なボタンを作ることもできます。
 
 

Continue reading

[Android] 背景色の設定

Viewクラスで定義されている setBackgroundColor() で背景色を設定できます。
多くのUI部品はViewクラスを継承していますので、ButtonやTextViewなどいろいろなUI部品でここで紹介する方法が使用できます。
 

レイアウトファイルでの設定方法

android:background 属性にRGB値を指定することで背景色を設定することができます。

RGB値は頭に#を付け、次いで赤、緑、青の順で各値を16進数2桁で指定します。
言葉で表現すると分かり辛いですが「#RRGGBB」という形式で指定することになります。

各値は00~FF(10進数で0~255)の範囲で指定し、00に近いほど黒要素が強くなります。
「#000000」は黒、「#FFFFFF」は白を表します。

次のサンプルでは背景色として赤を設定しています。

    <Button
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#FF0000" />

 
 

Continue reading

ホーム > プログラム

Search
Feeds
Meta
人気の記事

Return to page top