manifestの宣言を忘れずに
Androideでネットワークに接続し画像を表示することをテストしていましたが、manifestの宣言というのがよく分からずはまりました。Exceptionもでないで、Unknown socket errorでこけていたのですが、manifest宣言を書くことによってうまくいきました。おかげでログの出力も分かったので良かったです。Logは便利ですね。かなり開発しやすいと思います。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="jp.co.acl_inc.android" android:versionCode="1" android:versionName="1.0.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".TodaysSun" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.INTERNET"/> </manifest>
ソースのサンプルも載せておきます。
package jp.co.acl_inc.android; import java.io.InputStream; import java.net.URL; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.util.Log; import android.view.Window; import android.widget.ImageView; public class TodaysSun extends Activity { private static final String LogTag = "TodaysSun:"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { requestWindowFeature(Window.FEATURE_NO_TITLE); ImageView iv = new ImageView(this); URL url = new URL("http://hinode.nao.ac.jp/news/071207PressRelease/okamoto-fig.png"); InputStream is = url.openStream(); Bitmap bm = BitmapFactory.decodeStream(is); iv.setImageBitmap(bm); setContentView(iv); } catch (Exception e) { Log.v(LogTag, e.toString()); } } }