2011-12-28 11 views
2

ビューをビットマップ画像にキャプチャしていますが、ビューにアクセスできないという大きな問題があります。高さや幅を得ることができないことを意味します。問題がどこにあるのか教えてください。アンドロイドで画像をビューとしてキャプチャしているときにエラーが発生しました

レイアウト:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="match_parent" android:background="#ffffff"> 
    <FrameLayout android:id="@+id/frameLayout1" 
     android:layout_width="fill_parent" android:layout_height="40dip" 
     android:background="@color/Red"> 
     <TextView android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:id="@+id/tv_Previrew_Header" 
      android:text="Greeting" android:textColor="#ffffff" 
      android:textStyle="bold" android:textSize="18dip" 
      android:layout_gravity="center_vertical|center_horizontal"></TextView> 
    </FrameLayout> 
    <FrameLayout android:id="@+id/fr" 
     android:layout_height="fill_parent" android:layout_width="fill_parent"> 
     <Button android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:id="@+id/btn_email" 
      android:background="@drawable/email2x" android:layout_gravity="bottom"></Button> 
     <ImageView android:id="@+id/img_Preview_Image" 
      android:layout_gravity="center_vertical|center_horizontal" 
      android:layout_height="270dip" android:layout_width="250dip"></ImageView> 
     <TextView android:text="TextView" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:id="@+id/tv_Preview_Greeting" 
      android:layout_gravity="top|left" android:textColor="@color/Red" android:textSize="20dip" android:textStyle="bold" android:layout_marginLeft="35dip" android:layout_marginTop="40dip"></TextView> 
     <ImageView android:layout_width="wrap_content" android:src="@drawable/halosys_logo_bottom" android:layout_height="wrap_content" android:id="@+id/imageView1" android:layout_gravity="right" android:layout_marginTop="320dip" android:layout_marginRight="40dip"></ImageView> 
    </FrameLayout> 

</LinearLayout> 

コード:

FrameLayout view = (FrameLayout)findViewById(R.id.fr); 
Bitmap bm = Bitmap.createBitmap(view.getWidth(), view.getHeight(),Bitmap.Config.ARGB_8888); 
      bm.compress(CompressFormat.JPEG, 95, new FileOutputStream("/sdcard/image.jpg")); 

は、エラー・スタック:

12-28 17:16:17.955: ERROR/AndroidRuntime(25935): FATAL EXCEPTION: main 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.greetingApp.common/com.greetingApp.common.Greeting}: java.lang.IllegalArgumentException: width and height must be > 0 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935):  at android.os.Handler.dispatchMessage(Handler.java:99) 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935):  at android.os.Looper.loop(Looper.java:123) 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935):  at java.lang.reflect.Method.invokeNative(Native Method) 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935):  at java.lang.reflect.Method.invoke(Method.java:521) 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935):  at dalvik.system.NativeStart.main(Native Method) 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935): Caused by: java.lang.IllegalArgumentException: width and height must be > 0 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935):  at android.graphics.Bitmap.nativeCreate(Native Method) 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935):  at android.graphics.Bitmap.createBitmap(Bitmap.java:468) 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935):  at com.greetingApp.common.Greeting.SaveData(Greeting.java:109) 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935):  at com.greetingApp.common.Greeting.onCreate(Greeting.java:81) 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
12-28 17:16:17.955: ERROR/AndroidRuntime(25935):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 

答えて

0

あなたの活動にあなたのコードを実行してください。 onCreateメソッド? 「はい」の場合、ビューの寸法はまだわかりません。レイアウトサイズが計算された後の段階でこのコードを実行してください。

+0

最後のアクティビティで測定しましたが、エラーは同じです。 –

+0

アクティビティーライフサイクルのポイントは、最後に参照していますか? – Anton

+0

は、onCreateメソッドの最後の文を意味します。 –

関連する問題