按钮上的旋转图像单击

时间:2011-12-15 09:58:30

标签: android

我创建了一个小应用程序,以便在单击按钮时显示的图像应该旋转。我写了以下代码:

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);
    }

现在,当我执行代码并单击按钮旋转图像时,应用程序正在强制我关闭它,提到出现意外错误。我无法追查和纠正。在这方面,有谁可以帮助我?

1 个答案:

答案 0 :(得分:0)

猜测,您在Button布局中main.xml拥有此属性android:onClick="Rotate",其中ImageActivity中定义的方法不是吗?< / p>

如果是,请重写Rotate()的定义,如下所示:public void Rotate(View v)。 它应该工作正常。

此外,您可以使用:

img.setImageBitmap(rotatedBMP);

而不是在BitmapDrawable

上浪费更多内存