2011-12-15 6 views
0

Я создал небольшое приложение, так что изображение, которое отображается, должно вращаться, когда я нажимаю кнопку. Я написал следующий код:Вращающееся изображение при нажатии кнопки

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

Теперь, когда я выполнить код и нажмите кнопку, чтобы повернуть изображение, приложение заставляет меня, чтобы закрыть его, упоминая есть неожиданная ошибка. Я не мог проследить и исправить. Может ли кто-нибудь помочь мне в этом отношении?

+2

Пожалуйста, дать людям кредит на их усилия, чтобы помочь вам и [принимать ответы] (HTTP: // мета- .stackexchange.com/a/5235/164138) по предыдущим вопросам. Вы не приняли ни одного ответа! – THelper

+0

Можете ли вы опубликовать некоторый код исключения из регистратора, такого как logcat? – Davos555

+0

где ваша кнопка. Из которого вы вызываете метод Rotate(). –

ответ

0

Лемм думаю, у вас есть Button в макете main.xml, имеющий этот атрибут android:onClick="Rotate", в котором метод, определенный в ImageActivity, не так ли?

Если это правда, перепишите определение Rotate() следующим образом: public void Rotate(View v). Он должен работать нормально.

Кроме того, вы можете просто использовать:

img.setImageBitmap(rotatedBMP); 

вместо того, чтобы тратить больше памяти на этом BitmapDrawable

Смежные вопросы