为什么android应用程序不缩放图像,而是挂起
我正在尝试从imageView中获取缩放位图,因为我需要一个高度相等宽度的图像,以便稍后将它们分割为更小的位图。我使用的代码如下:为什么android应用程序不缩放图像,而是挂起,android,android-imageview,android-image,Android,Android Imageview,Android Image,我正在尝试从imageView中获取缩放位图,因为我需要一个高度相等宽度的图像,以便稍后将它们分割为更小的位图。我使用的代码如下: public void breakImage(View v) { ImageView imageView = (ImageView) findViewById(R.id.imgView); Drawable d = imageView.getBackground(); BitmapDrawable bitma
public void breakImage(View v)
{
ImageView imageView = (ImageView) findViewById(R.id.imgView);
Drawable d = imageView.getBackground();
BitmapDrawable bitmapDrawable = ((BitmapDrawable) d);
Bitmap image = bitmapDrawable .getBitmap();
Bitmap scaledImage = Bitmap.createScaledBitmap(image, 240, 240, true);
int width = image.getWidth();
int height = image.getHeight();
}
但是程序在到达语句时会被卡住
BitmapDrawable bitmapDrawable = ((BitmapDrawable) d);
有人知道这个代码有什么问题吗
提前谢谢
以下是日志:
01-03 04:47:57.078: D/dalvikvm(10411): GC_EXTERNAL_ALLOC freed 52K, 52% free 2634K/5379K, external 1605K/2108K, paused 22ms
01-03 04:47:58.507: D/AndroidRuntime(10411): Shutting down VM
01-03 04:47:58.507: W/dalvikvm(10411): threadid=1: thread exiting with uncaught exception (group=0x40015578)
01-03 04:47:58.531: E/AndroidRuntime(10411): FATAL EXCEPTION: main
01-03 04:47:58.531: E/AndroidRuntime(10411): java.lang.IllegalStateException: Could not execute method of the activity
01-03 04:47:58.531: E/AndroidRuntime(10411): at android.view.View$1.onClick(View.java:2154)
01-03 04:47:58.531: E/AndroidRuntime(10411): at android.view.View.performClick(View.java:2538)
01-03 04:47:58.531: E/AndroidRuntime(10411): at android.view.View$PerformClick.run(View.java:9152)
01-03 04:47:58.531: E/AndroidRuntime(10411): at android.os.Handler.handleCallback(Handler.java:587)
01-03 04:47:58.531: E/AndroidRuntime(10411): at android.os.Handler.dispatchMessage(Handler.java:92)
01-03 04:47:58.531: E/AndroidRuntime(10411): at android.os.Looper.loop(Looper.java:123)
01-03 04:47:58.531: E/AndroidRuntime(10411): at android.app.ActivityThread.main(ActivityThread.java:3687)
01-03 04:47:58.531: E/AndroidRuntime(10411): at java.lang.reflect.Method.invokeNative(Native Method)
01-03 04:47:58.531: E/AndroidRuntime(10411): at java.lang.reflect.Method.invoke(Method.java:507)
01-03 04:47:58.531: E/AndroidRuntime(10411): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
01-03 04:47:58.531: E/AndroidRuntime(10411): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
01-03 04:47:58.531: E/AndroidRuntime(10411): at dalvik.system.NativeStart.main(Native Method)
01-03 04:47:58.531: E/AndroidRuntime(10411): Caused by: java.lang.reflect.InvocationTargetException
01-03 04:47:58.531: E/AndroidRuntime(10411): at java.lang.reflect.Method.invokeNative(Native Method)
01-03 04:47:58.531: E/AndroidRuntime(10411): at java.lang.reflect.Method.invoke(Method.java:507)
01-03 04:47:58.531: E/AndroidRuntime(10411): at android.view.View$1.onClick(View.java:2149)
01-03 04:47:58.531: E/AndroidRuntime(10411): ... 11 more
01-03 04:47:58.531: E/AndroidRuntime(10411): Caused by: java.lang.NullPointerException
01-03 04:47:58.531: E/AndroidRuntime(10411): at com.example.imagegallerydemo.MainActivity.breakImage(MainActivity.java:105)
01-03 04:47:58.531: E/AndroidRuntime(10411): ... 14 more
以下是日志中的错误原因:
01-03 04:47:58.531: E/AndroidRuntime(10411): Caused by: java.lang.NullPointerException
01-03 04:47:58.531: E/AndroidRuntime(10411): at com.example.imagegallerydemo.MainActivity.breakImage(MainActivity.java:105)
这是因为d
为null,而d
为null是因为getBackground()
为null
是否确实要
getBackground()
?这将返回ImageView
的背景,而不是使用android:src
或setImageBitmap
,setImageDrawable
,setImageResource
等设置的图像集。要获得该可绘制图像,请使用getDrawable()
方法。我打赌您在onCreate()中进行了此操作?否。我是在单击事件时调用的函数中执行此操作的。我已经调试了代码。它一直到达指定的行,但在那里停止。哦,我正在真实的设备上运行它。您仍然可以通过从手机启用USB调试并将手机连接到USB来获取LogCat。这是不是说该方法根本没有被执行。。。?