2015-02-01 7 views
8

यह जावा कोड है। मुझे छवि गैलरी से छवि मिल रही है। मेरे पास एक बटन और एक छवि दृश्य है। यह केवल एक बार घूर्णन कर रहा है। जब मैं फिर से बटन क्लिक करता हूं तो यह छवि घूर्णन नहीं कर रहा है।बटन पर छविदृश्य में छवि को घुमाने के लिए प्रत्येक बार क्लिक करें?

public class EditActivity extends ActionBarActivity 
{ 
private Button rotate; 
private ImageView imageView; 
@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_edit); 
    rotate=(Button)findViewById(R.id.btn_rotate1); 
    imageView = (ImageView) findViewById(R.id.selectedImage); 
    String path = getIntent().getExtras().getString("path"); 
    final Bitmap bitmap = BitmapFactory.decodeFile(path); 
    imageView.setScaleType(ImageView.ScaleType.FIT_XY); 
    imageView.setImageBitmap(Bitmap.createScaledBitmap(bitmap, 510, 500, 
      false)); 
    rotate.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
      {     
      imageView.setRotation(90); 


     } 
    }); 



} 
+0

[एंड्रॉइड :: कोण द्वारा छवि दृश्य में घुमाएं छवि का संभावित डुप्लिकेट] (http://stackoverflow.com/questions/8981845/androidrotate-image-in-imageview-by-an-angle) – Dhina

+0

मैं बस इस बात को ध्यान में रखना कि इस प्रश्न को लगातार घूर्णन की आवश्यकता है जो पूर्ण सर्कल को पूरा करे। दूसरी तरफ प्रस्तावित डुप्लिकेट चतुर्भुज द्वारा घुमाएगा और इसे बार-बार दोहराएगा। –

उत्तर

23

को

@Override 
public void onClick(View v) 
{     
    imageView.setRotation(imageView.getRotation() + 90); 
} 

सूचना, docs क्या कहते हैं

डिग्री उस दृश्य धुरी के चारों ओर घुमाया जाता है सेट अपने onClick() विधि बदलें। बढ़ते मूल्यों के परिणामस्वरूप घड़ी की दिशा में घूर्णन होता है।


मैं अपने जवाब को अद्यतन करने के RotateAnimation का उपयोग कैसे करें आप भी Android उपकरणों जिंजरब्रेड (v10) या नीचे चल रहा लक्षित कर रहे हैं मामले में एक ही प्रभाव को प्राप्त करने को दिखाना चाहते हैं।

mCurrRotation %= 360; 
float fromRotation = mCurrRotation; 
float toRotation = mCurrRotation += 90; 

final RotateAnimation rotateAnim = new RotateAnimation(
     fromRotation, toRotation, imageview.getWidth()/2, imageView.getHeight()/2); 

rotateAnim.setDuration(1000); // Use 0 ms to rotate instantly 
rotateAnim.setFillAfter(true); // Must be true or the animation will reset 

imageView.startAnimation(rotateAnim); 

आमतौर पर एक कर सकते हैं सेटअप इस तरह के रूप में अच्छी तरह View animations एक्सएमएल के माध्यम से:

private int mCurrRotation = 0; // takes the place of getRotation() 

के रूप में ऊपर रोटेशन डिग्री नज़र रखने और उसे के रूप में उपयोग करने के लिए एक उदाहरण के क्षेत्र का परिचय दें। लेकिन, चूंकि आपको वहां पूर्ण डिग्री मान निर्दिष्ट करना है, इसलिए पूर्ण घूर्णन पूर्ण सर्कल को पूरा करने के लिए पिछले एक पर निर्माण के बजाय खुद को दोहराएगा। इसलिए, मैंने यह दिखाने के लिए चुना कि उपरोक्त कोड में इसे कैसे किया जाए।

+0

यह काम कर रहा है। धन्यवाद। – user2095748

+0

मदद करने के लिए खुशी हुई। जब भी आप कर सकते हैं उत्तर को ऊपर उठाना/स्वीकार करना न भूलें :) –

+0

एपीआई 11 के बाद से ... – Darpan

संबंधित मुद्दे