I get an illegal exception trying to make the transparent area of ββthe image button invisible. How to solve this problem: I implemented OnTouchListner and implemented loadBitmapFromView(View v)
code:
package com.sunojsworkshop; import android.os.Bundle; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.ImageButton; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ImageButton imgView= (ImageButton) findViewById(R.id.imageButton1); imgView.setDrawingCacheEnabled(true); imgView.setOnTouchListener(new OnTouchListener(){
XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:background="@drawable/worldfinal" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="SELECT A DESIRED COUNTRY" /> <ImageButton android:id="@+id/imageButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_below="@+id/textView1" android:layout_marginRight="28dp" android:layout_marginTop="93dp" android:src="@drawable/india1" android:background="@android:color/transparent" />
and Log:
08-06 13:13:24.162: E/AndroidRuntime(329): FATAL EXCEPTION: main 08-06 13:13:24.162: E/AndroidRuntime(329): java.lang.IllegalArgumentException: width and height must be > 0 08-06 13:13:24.162: E/AndroidRuntime(329): at android.graphics.Bitmap.nativeCreate(Native Method) 08-06 13:13:24.162: E/AndroidRuntime(329): at android.graphics.Bitmap.createBitmap(Bitmap.java:477) 08-06 13:13:24.162: E/AndroidRuntime(329): at com.sunojsworkshop.MainActivity$1.loadBitmapFromView(MainActivity.java:49) 08-06 13:13:24.162: E/AndroidRuntime(329): at com.sunojsworkshop.MainActivity$1.onTouch(MainActivity.java:35) 08-06 13:13:24.162: E/AndroidRuntime(329): at android.view.View.dispatchTouchEvent(View.java:3881) 08-06 13:13:24.162: E/AndroidRuntime(329): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:869) 08-06 13:13:24.162: E/AndroidRuntime(329): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:869) 08-06 13:13:24.162: E/AndroidRuntime(329): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:869) 08-06 13:13:24.162: E/AndroidRuntime(329): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:869) 08-06 13:13:24.162: E/AndroidRuntime(329): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1691) 08-06 13:13:24.162: E/AndroidRuntime(329): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1125) 08-06 13:13:24.162: E/AndroidRuntime(329): at android.app.Activity.dispatchTouchEvent(Activity.java:2096) 08-06 13:13:24.162: E/AndroidRuntime(329): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1675) 08-06 13:13:24.162: E/AndroidRuntime(329): at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2194) 08-06 13:13:24.162: E/AndroidRuntime(329): at android.view.ViewRoot.handleMessage(ViewRoot.java:1878) 08-06 13:13:24.162: E/AndroidRuntime(329): at android.os.Handler.dispatchMessage(Handler.java:99) 08-06 13:13:24.162: E/AndroidRuntime(329): at android.os.Looper.loop(Looper.java:123) 08-06 13:13:24.162: E/AndroidRuntime(329): at android.app.ActivityThread.main(ActivityThread.java:3683) 08-06 13:13:24.162: E/AndroidRuntime(329): at java.lang.reflect.Method.invokeNative(Native Method) 08-06 13:13:24.162: E/AndroidRuntime(329): at java.lang.reflect.Method.invoke(Method.java:507) 08-06 13:13:24.162: E/AndroidRuntime(329): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 08-06 13:13:24.162: E/AndroidRuntime(329): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 08-06 13:13:24.162: E/AndroidRuntime(329): at dalvik.system.NativeStart.main(Native Method) </RelativeLayout>
source share