【问题标题】:Rotating image on button click单击按钮时旋转图像
【发布时间】:2011-12-15 18:46:09
【问题描述】:

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

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

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

【问题讨论】:

  • 请感谢人们为帮助您所做的努力和accept answers您之前的问题。你没有接受一个答案!
  • 你能发布一些来自 logcat 等记录器的异常代码吗?
  • 您的按钮在哪里。您从哪个活动调用 Rotate() 方法。
  • 我已经从 main.xml 文件中调用了我的 Rotate () 函数
  • 12-15 16:53:06.860: I/Process(538): 发送信号。 PID: 538 SIG: 9 12-15 17:03:32.318: E/AndroidRuntime(411): at android.view.View.performClick(View.java:2485) 12-15 17:03:32.318: E/AndroidRuntime( 411): 在 android.os.Handler.dispatchMessage(Handler.java:92) 12-15 17:03:32.318: E/AndroidRuntime(411): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit .java:839) 是我在日志文件中得到的异常。

标签: android


【解决方案1】:

让我猜,你在布局main.xml中有Button,有android:onClick="Rotate"这个属性,其中ImageActivity中定义的方法,不是吗?

如果为真,重写Rotate() 的定义如下:public void Rotate(View v)。 它应该可以正常工作。

此外,您可以使用:

img.setImageBitmap(rotatedBMP);

而不是在 BitmapDrawable 上浪费更多内存

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多