2012-05-02 14 views
0

背景を設定し、別のイメージを上に配置したフレームレイアウトを保存します。
私はonclickボタンを使用すると「強制終了エラー」が表示されます。エラー・ログをここでレイアウトされたイメージをsdcardに保存

FrameLayout mainLayout = (FrameLayout) findViewById(R.id.imageView); 
File root = Environment.getExternalStorageDirectory(); 
File file = new File(root,"androidlife.jpg"); 
Bitmap b = Bitmap.createBitmap(mainLayout.getWidth(), mainLayout.getHeight(), Bitmap.Config.ARGB_8888); 
Canvas c = new Canvas(b); 
mainLayout.draw(c); 
FileOutputStream fos = null; 
try { 
    fos = new FileOutputStream(file); 

    if (fos != null) { 
     b.compress(Bitmap.CompressFormat.JPEG, 90, fos); 
     fos.close(); 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

されています:

私は次のコードを使用してい

FrameLayout mainLayout = (FrameLayout) findViewById(R.id.imageView); 

そしてR.:

05-03 00:39:37.281: W/dalvikvm(445): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
05-03 00:39:37.301: E/AndroidRuntime(445): FATAL EXCEPTION: main 
05-03 00:39:37.301: E/AndroidRuntime(445): java.lang.ClassCastException: android.widget.ImageView 
05-03 00:39:37.301: E/AndroidRuntime(445): at org.example.touch.Touch$1.onClick(Touch.java:60) 
05-03 00:39:37.301: E/AndroidRuntime(445): at android.view.View.performClick(View.java:2408) 
05-03 00:39:37.301: E/AndroidRuntime(445): at android.view.View$PerformClick.run(View.java:8816) 
05-03 00:39:37.301: E/AndroidRuntime(445): at android.os.Handler.handleCallback(Handler.java:587) 
05-03 00:39:37.301: E/AndroidRuntime(445): at android.os.Handler.dispatchMessage(Handler.java:92) 
05-03 00:39:37.301: E/AndroidRuntime(445): at android.os.Looper.loop(Looper.java:123) 
05-03 00:39:37.301: E/AndroidRuntime(445): at android.app.ActivityThread.main(ActivityThread.java:4627) 
05-03 00:39:37.301: E/AndroidRuntime(445): at java.lang.reflect.Method.invokeNative(Native Method) 
05-03 00:39:37.301: E/AndroidRuntime(445): at java.lang.reflect.Method.invoke(Method.java:521) 
05-03 00:39:37.301: E/AndroidRuntime(445): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
05-03 00:39:37.301: E/AndroidRuntime(445): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
05-03 00:39:37.301: E/AndroidRuntime(445): at dalvik.system.NativeStart.main(Native Method) 

答えて

1

問題は、あなたがこれをやっているということですid.imageViewはおそらくImageViewへの参照です。以下のようにあなたがより良い何かをする:私は問題を自分で解決

ImageView mainLayout = (ImageView) findViewById(R.id.imageView); 
+0

....それは....私は でframeLayout mainLayout =(でframeLayout)findViewById(R.id.frame)に間違ったrefernceに変更されました。 私はxmlファイル用にFrameLayoutを使用しているため、** ImageView **に変更することはできません。 – Numair

関連する問題