के आसपास अन्य विचारों को स्थानांतरित करता है मैं अब लगभग दो सप्ताह के लिए एंड्रॉइड सीख रहा हूं (AS2/3 में विशेषज्ञ)।एंड्रॉइड - उंगली के साथ एक छवि दृश्य को घुमाएं
मैं एक साधारण LinearLayout1, which contains an
ImageView` बनाया है, एक विनाइल रिकॉर्ड (सिर्फ एक परिपत्र डिस्क मूल रूप से)
मैं इस ImageView
की स्थापना की है घुमाया जा करने के लिए की एक png युक्त जब उपयोगकर्ता उस पर एक उंगली खींच लेता है, जैसे एक रिकॉर्ड खरोंच।
मेरा कोड काम कर रहा है (यकीन नहीं है कि यह सबसे अच्छा तरीका है लेकिन यह काम करता है)। समस्या यह है कि ImageView
घुमाया गया है, यह चारों ओर अन्य विचारों को धक्का देता है। मैंने यह निर्धारित किया है क्योंकि मेरी गोल छवि पारदर्शी कोनों के साथ वास्तव में एक वर्ग है। यह उन कोनों में है जो आसपास के अन्य विचारों को दबा रहे हैं, और यदि स्क्रीन ImageView
उचित है, तो स्क्रीन के बाईं ओर रिकॉर्ड को धक्का दे रहा है।
इस ऑनलाइन को हल करने के कुछ प्रयास हैं, लेकिन उनमें से कोई भी मुझे जो कुछ चाहिए उसे प्रतीत नहीं होता है और कुछ उदाहरणों में इतने मजबूत हैं कि मैं अपने शुरुआती स्तर पर इसे से क्या लेना चाहता हूं।
अगर कोई ऐसा कर सकता है जो मैं कर सकता हूं तो कुछ हल कर सकता हूं ताकि यह हल हो सके। मुझे एहसास है कि एक साधारण उत्तर मौजूद नहीं हो सकता है, लेकिन ध्यान रखें कि मैं जावा नोब हूं और इसे जितना आसान कर सकता हूं! किसी भी मदद के लिए अग्रिम में बहुत - बहुत धन्यवाद!
भी अगर कोई मुझे बता सकता है कि मुझे रोटेशन से 50 को घटाने की आवश्यकता क्यों है ताकि रिकॉर्ड को उस सटीक स्थान के नीचे ले जाया जा सके जो उपयोगकर्ता छूता है, जो भी सहायक होगा! विधि अद्यतनRotation() में इसे देखें।
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/baseView"
android:background="#FFFFFFFF"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/turntable"
android:src="@drawable/turntable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
और यहाँ मेरी जावा कोड है:
package com.codingfiend.android.turntable;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;
import android.widget.TextView;
public class Turntable extends Activity
{
View baseView;
ImageView turntable;
TextView bottomText;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
baseView = (View)findViewById(R.id.baseView);
turntable = (ImageView)findViewById(R.id.turntable);
turntable.setOnTouchListener(onTableTouched);
}
public android.view.View.OnTouchListener onTableTouched = new android.view.View.OnTouchListener()
{
public boolean onTouch(View v, MotionEvent evt)
{
double r = Math.atan2(evt.getX() - turntable.getWidth()/2, turntable.getHeight()/2 - evt.getY());
int rotation = (int) Math.toDegrees(r);
if (evt.getAction() == MotionEvent.ACTION_DOWN)
{
//
}
if (evt.getAction() == MotionEvent.ACTION_MOVE)
{
updateRotation(rotation);
}
if (evt.getAction() == MotionEvent.ACTION_UP)
{
//
}
return true;
}
};
private void updateRotation(double rot)
{
float newRot = new Float(rot);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.turntable);
Matrix matrix = new Matrix();
matrix.postRotate(newRot - 50);
Bitmap redrawnBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
turntable.setImageBitmap(redrawnBitmap);
}
}
संपादित
यह बाहर घूम रहा है एक चिड़चिड़ी समस्या हो
यहाँ मेरी एक्सएमएल मार्कअप है। बिना किसी छवि के स्क्रीन के बड़े या बड़े आकार की छवि को घुमाने के लिए एक तरीका बनना होगा ताकि पूरी छवि स्क्रीन पर रहती है। घुमावदार छवि का हिस्सा स्क्रीन से क्यों नहीं जा सकता? अधिक निराश। मैंने छवि दृश्य को फ्रेमव्यू में आंशिक रूप से सहायता करने की कोशिश की। अब मैं उन अन्य विचारों को जोड़ सकता हूं जो प्रभावित नहीं होंगे, लेकिन मेरे पास अभी भी मेरी डिस्क काफी बड़ी नहीं हो सकती है क्योंकि इसे घुमाने पर स्क्रीन सीमाओं को पारित करने की अनुमति नहीं है। मुझे क्यों नहीं मिलता है। मैंने छवि दृश्य को विस्तारित करने की जांच नहीं की है। किसी भी अन्य विचार की सराहना की जाएगी!
+1 अच्छी तरह से प्रश्न पूछा गया। एसओ में आपका स्वागत है – wheaties