我创建了一个小应用程序,以便在单击按钮时显示的图像应该旋转。我写了以下代码:
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.widget.ImageView;
public class ImageActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void Rotate()
{
ImageView img = (ImageView)findViewById(R.id.imageView01);
Bitmap bmp = BitmapFactory.decodeResource(getResources(),R.drawable.bharath);
// Getting width & height of the given image.
int w = bmp.getWidth();
int h = bmp.getHeight();
// Setting pre rotate to 90
Matrix mtx = new Matrix();
mtx.preRotate(90);
// Rotating Bitmap
Bitmap rotatedBMP = Bitmap.createBitmap(bmp, 0, 0, w, h, mtx, true);
BitmapDrawable bmd = new BitmapDrawable(rotatedBMP);
img.setImageDrawable(bmd);
}
现在,当我执行代码并单击按钮旋转图像时,应用程序正在强制我关闭它,提到出现意外错误。我无法追查和纠正。在这方面,有谁可以帮助我?
答案 0 :(得分:0)
猜测,您在Button
布局中main.xml
拥有此属性android:onClick="Rotate"
,其中ImageActivity
中定义的方法不是吗?< / p>
如果是,请重写Rotate()
的定义,如下所示:public void Rotate(View v)
。
它应该工作正常。
此外,您可以使用:
img.setImageBitmap(rotatedBMP);
而不是在BitmapDrawable