カテゴリー
SugiBlog ホームページ制作・システム開発|大阪

Eclipseが起動できなくなったときの対処法

Eclipseがいつの間にか起動できなくなることがありました。
Eclipse を起動する時に使用される「Java VM」が正しく指定されていないことが
原因の可能性があります。
他の要因の場合もありますので、一概にこれで解決できるわけではありません。

詳しい原因としては、何らかのJavaベースのアプリケーションをインストールした際、
環境変数PATHがそれによって変更されてしまい、Eclipseで使用するJava VMのバージョンの設定と異なってしまうことにあるようです。

eclipse.iniに設定を追加しましょう。
「-vmargs」オプションの前に「-vm」オプションを追加します。

-vm "Eclipse 起動時に使用する Java VM"

例)

-vm
C:\Program Files\Java\jre6\bin\javaw.exe

参考URL
http://www.hitachi.co.jp/Prod/comp/soft1/cosminexus/useful/tips/090601_specify-eclipse-javavm.html
http://www.andr0o0id.com/?p=854

0
934 views

保存した画像をギャラリーにも登録する

画像を保存してギャラリーにも登録するのに、ContentResolverクラスを使っていましたが、
それではギャラリーに登録できないことがあったので、代替えの方法をご紹介します。

ContentResolverクラスの代わりにMediaScannerConnectionクラスを使用します。

String PATH = Environment.getExternalStorageDirectory();

String filename = "example.png";
String mimetype = "image/png";

File file = new File(PATH, filename);

MediaScannerConnection.scanFile(
    this,
    new String[] { file.getPath() },
    new String[] { mimetype },
    null);
0
2,313 views

現在地を取得する LocationClient

GoogleMapに限らず、位置情報を利用することは多いと思います。
LocationClientクラスを利用して位置情報を取得することができます。

GooglePlay開発者サービス(GooglePlayServices)を利用しますので、
プロジェクトにライブラリを組み込む必要があります。
導入方法は以下に書いていますのでご覧ください。
[Google Maps Android API v2]

今回、必要なインポートの抜粋。

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks;
import com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener;
import com.google.android.gms.common.GooglePlayServicesUtil;

import com.google.android.gms.location.LocationClient;
import com.google.android.gms.location.LocationListener;
import com.google.android.gms.location.LocationRequest;

Activityを継承したメインクラスにコールバックのクラスを実装します。

public class MainActivity extends Activity 
    implements 
    ConnectionCallbacks,
    OnConnectionFailedListener,
    LocationListener {

LocationRequestの設定をします。

private static final LocationRequest REQUEST = LocationRequest.create()
        .setInterval(5000)         // 5 seconds
        .setFastestInterval(16)    // 16ms = 60fps
        //.setNumUpdates(3)
        .setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
LocationRequestのパラメータ設定
setInterval (long millis) ミリ秒単位で位置情報更新の間隔を設定します。
setFastestInterval (long millis) ミリ秒単位で位置情報更新の正確な間隔を設定します。
setNumUpdates (int numUpdates) 位置情報の更新数を設定します。
setPriority (int priority) 位置情報取得要求の優先順位を設定します。

続きを読む…»

0
8,366 views

GoogleMap Android API v2 使い方#05

今回はマーカーをタップした時の処理をカスタマイズしてみましょう。
GoogleMapのオブジェクト(mMap)は作成済とします。

マーカータップ時の処理カスタマイズ

まずはマーカーを追加します。
詳細なマーカーの追加方法についてはGoogleMap Android API v2 使い方#02を参照ください。

marker = mMap.addMarker(new MarkerOptions()
    .position(new LatLng(34.7, 135.5))
    .snippet("スニペット"));

マーカーのイベントをカスタマイズし、マーカーのIDとスニペットをトーストに表示してみましょう。

mMap.setOnMarkerClickListener(new OnMarkerClickListener() {

    @Override
    public boolean onMarkerClick(Marker marker) {

        Toast.makeText(getApplicationContext(),
            marker.getId() + "\r\n" + marker.getSnippet(),
            Toast.LENGTH_LONG).show();

        return false;

    }

});

getIdメソッドはm0、m1…とマーカーのIDが返されます。
getSnippetメソッドは、マーカー作成時に設定したSnippetが返されます。

この機能を実装するとInfoWindowは表示されなくなります。
続きを読む…»

0
1,612 views

住所から座標を取得 GoogleMapAPI Geocoder

GoogleMap APIを利用して、住所から座標を取得します。

String search_key = "座標を取得したい住所";

ジオコーダーオブジェクトのインスタンスを生成

Geocoder gcoder = new Geocoder(this, Locale.getDefault());

結果を返してほしい件数を指定します。

int maxResults = 1;

結果を代入する変数を宣言

List<Address> lstAddr;

実際に取得してみましょう。

// 位置情報の取得
lstAddr = gcoder.getFromLocationName(search_key, maxResults);

if (lstAddr != null && lstAddr.size() > 0) {
    // 緯度・経度取得
    Address addr = lstAddr.get(0);
    double latitude = addr.getLatitude();
    double longitude = addr.getLongitude();

    Toast.makeText(this, "位置\n緯度:" + latitude + "\n経度:" + longitude, Toast.LENGTH_LONG).show();
}

例外処理は省いていますが、IllegalArgumentExceptionとIOExceptionが発生する可能性があります。
続きを読む…»

0
4,783 views

連想配列を使用する Android

連想配列を使用するにはHashtableや、HashMapを使用します。
双方ともMapインターフェイスを実装しているjava.utilのクラスです。
他にもありますが、主だったものをご紹介します。

クラス名 特徴
HashMap 順不同
TreeMap キーの昇順
Hashtable キーの降順
LinkedHashMap 追加した順番

ここではHashMapを例にやってみましょう。

まずは宣言

HashMap<String, String> hashmap;

変数の初期化

hashmap = new HashMap<String, String>();

データを追加します。

hashmap.put("key", "value");

キーを指定し、値を取得します。

hashmap.get("key");
0
2,651 views

GoogleMap Android API v2 使い方#04

今回は地図上に線や図形を描いてみましょう。
GoogleMapのオブジェクト(mMap)は作成済とします。

線を描く

描画オプションのクラスをインポートします。

import com.google.android.gms.maps.model.PolylineOptions;

サンプルとして2点の座標を宣言

private LatLng place1 = new LatLng(43.061363052307875, 141.3549041748047); //札幌
private LatLng place2 = new LatLng(33.54139466898275, 130.3857421875);     //福岡

描画オプションのインスタンスを生成

PolylineOptions options = new PolylineOptions();

線の色を指定します。

options.color(Color.RED);

線の幅を指定します。

options.width(3.0f);

座標を追加します。

options.add(place1, place2);

設定が完了したので、マップに追加します。

mMap.addPolyline(options);

SC20140822-094132

描画した線をクリアしたい時は以下のようにします。

options.getPoints().clear();

位置情報と併用して移動の軌跡を表示したりすることもできます。
続きを読む…»

0
2,048 views

GoogleMap Android API v2 使い方#03

今回は地図で任意の場所を表示させてみたいと思います。
v1ではMapController.animateToでやっていたことと同様です。

GoogleMapのオブジェクト(mMap)は作成済とします。

地図の中心位置の座標を指定

まずは、必要なクラスをインポートします。

import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.model.LatLng;

CameraUpdateFactoryクラスを使ってCameraUpdateオブジェクトを作成します。

CameraUpdate cu = 
        CameraUpdateFactory.newLatLng(
                new LatLng(34.7, 135.5));

GoogleMap.moveCameraメソッドで地図を指定位置へ移動させます。

mMap.moveCamera(cu);

続きを読む…»

0
1,531 views

GoogleMap Android API v2 使い方#02

今回は、マーカー表示と円の描画方法についてご紹介します。

GoogleMap Android API v2では、マーカーや円を描く等、
v1よりも格段にやり易くなっています。

マーカーを表示する

必要なインポートは以下の通りです。

import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.LatLng;

マーカーを追加。
GoogleMapのオブジェクト(mMap)は作成済とします。

Marker mMarker = mMap.addMarker(new MarkerOptions()
    .position(LatLng latLng));

マーカーを追加するだけならこれだけです。

次にマーカーのアイコンをカスタマイズする場合。
追加で必要なインポートは以下の通りです。

import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.BitmapDescriptor;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;

マーカーに使用する画像をリソースから取得します。
png形式で作成し、res/drawableディレクトリに追加しておいてください。

BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(R.drawable.ic_maps_indicator_current_position);

マーカーに座標と一緒にアイコンを指定し、作成します。

Marker mMarker = mMap.addMarker(new MarkerOptions()
    .position(LatLng latLng)
    .icon(icon));

続きを読む…»

0
4,064 views

GoogleMap Android API v2 使い方#01

今回は地図の基本設定と、カメラ位置とズームレベルの変更の方法をご紹介します。
Android2.x系、3.1.x系以上の2パターンを紹介しています。

API v2の導入方法については以下をご覧ください。
[Google Maps Android API v2]

2014-08-18 追記


GooglePlay開発者サービス(GooglePlayServices)がAndroid2.2はサポートしなくなりました。
そのため、Android2.2ではGoogleMap Android API v2が利用できません。

Android2.x系でも動作するように作成する場合

メインとなるFragmentActivityを継承したクラスに機能を実装していきます。

public class MainActivity extends FragmentActivity

変数の宣言

private GoogleMap mMap;

マップオブジェクトを生成する関数を作成

private void setUpMapIfNeeded() {

    if (mMap == null) {

        mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
                .getMap();

    }

}

作成した関数をActivityのonCreateで実行します。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    setUpMapIfNeeded();
}
マップの各種設定を指定する場合

まず変数の宣言

private GoogleMap mMap;
private UiSettings mUiSettings;

続きを読む…»

0
1,979 views