2013年5月22日水曜日

WebViewの背景を透明にする

いろんな情報が錯そうしているが、以下の2つで解決

webview.setBackgroundColor(0) ; //(Color.TRANSPARENT);でもOK

loadUrlの前でも問題ない。

そして、マニフェストのandroid:hardwareAccelerated="false"が必要


    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        android:hardwareAccelerated="false" >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main"
            android:hardwareAccelerated="false" >

WebViewでフラッシュを表示するときは、android:hardwareAccelerated="true"が必要なので、背景は透明にできないようだ。

ちなみに、Android 3.2での結果。


2013年5月9日木曜日

Google Map v2


Google Map が v2 になってとても簡単になっていた。
また、サポートされなくなるので、変更しておいたほうがよい。

これを使うには、Google Play Services ライブラリをDLして、google-play-services_libフォルダをEclipceにImportし、
使用するプロジェクトでlibとしてリンクする必要がある。(Preferences-Android)

(例)
package com.example.mapv2text;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

import android.support.v4.app.FragmentActivity;

public class MainActivity  extends FragmentActivity {

private GoogleMap mMap;
  
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    
    @Override
    protected void onResume() {
        super.onResume();    
   // Do a null check to confirm that we have not already instantiated the map.
   if (mMap == null) {
       // Try to obtain the map from the SupportMapFragment.
       mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
               .getMap();
        mMap.setMyLocationEnabled(true); //My Locationボタンを表示する
       
        //Mapの中心とZoomを指定して表示
           //LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
           LatLng latLng = new LatLng(36.242612, 139.553061);
           CameraUpdate update = CameraUpdateFactory.newLatLngZoom(latLng, 13);

        mMap.moveCamera(update);
         
       // マーカー表示
       if (mMap != null) {
        mMap.addMarker(new MarkerOptions()
        .position(new LatLng(36.242612, 139.553061))
        .title("タイトル")
        .snippet("ここはどこでしょう?")
        .icon(BitmapDescriptorFactory.fromResource(R.drawable.icon))
        );
         
       }
   }
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

2013年5月7日火曜日

Google Map API Key 作成 

Google Maps API Android v2対応

コマンドプロンプトで実行

デバッグ時は、SDKに付属している、debug.keystoreを使用する。


C:\Users\_t>"c:\Program Files\Java\jre7\bin\keytool.exe" -list -v -keystore "c:\Users\_t\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

(リリース時のAPI Keyは、debug.keystoreを正規のkeystoreにする。)

以下のように表示される、SHA1を利用する。


証明書のフィンガプリント:
   MD5:  7C:57:DC:D6:01:1E:94:42:CD:CD:47:35:2B:97:66:A1
   SHA1: 97:54:EA:66:30:96:2F:54:7B:78:8A:6A:B0:AA:7E:0D:B4:53:CE:BC
   SHA256: 84:69:03:5A:B4:5E:1A:10:FE:60:35:5F:BE:1F:41:5C:AC:EA:2A:A4:8A:66:6A:1E:45:1A:98:02:46:D8:7B:2D
   署名アルゴリズム名: SHA256withRSA
   バージョン: 3

Google api console
https://code.google.com/apis/console/#project:147552444526

をブラウザで表示

Serviceで、Google Maps Android API v2をONにする
API Accesesで、SHA1と、セミコロン,パッケージ名を入れる。

97:54:EA:66:30:96:2F:54:7B:78:8A:6A:B0:AA:7E:0D:B4:53:CE:BC;com.example.mapdemo

Create New Android keyでAPI Keyを得る

はまった点:
APIキーを変更したときは、一度アプリを端末からアンインストールしないと、
有効にならず、地図が表示されなかった。