मैं एंड्रॉयड में एक विशिष्ट कोण के अनुसार छवि को घुमाने के लिए चाहते हैं एक कैनवास पर छवि घूर्णन, एक कम्पास की तरह कुछ बात ...में एंड्रॉयड
मैं इस कोड को ... यह drawPath() पर काम करता है, लेकिन मैं पथ और चित्रकारी छवि को छवि के साथ प्रतिस्थापित करना चाहता हूं .. मैंने बिटमैप छवि बनाने की कोशिश की, DrawBitmapImage, लेकिन छवि पथ की तरह घूमती नहीं है .. कोई मदद PLease?
public void draw(Canvas canvas) {
double angle = calculateAngle(currentLongitude, currentLatitude, targetLongitude, targetLatitude);
//Correction;
angle-=90;
//Correction for azimuth
angle-=azimuth;
if((getContext() instanceof Activity) && ((Activity)getContext()).getWindowManager().getDefaultDisplay().getOrientation()==Configuration.ORIENTATION_PORTRAIT)angle-=90;
while(angle<0)angle=angle+360;
Rect rect = canvas.getClipBounds();
int height = rect.bottom-rect.top;
int width = rect.right-rect.left;
int left = rect.left;
int top = rect.top;
if(height>width){
top+=(height-width)/2;
height=width;
}
if(width>height){
left+=(width-height)/2;
width=height;
}
float centerwidth = width/2f;
float centerheight = height/2f;
Paint p = new Paint();
p.setColor(color);
p.setStyle(Paint.Style.FILL);
p.setAntiAlias(true);
float startX = left+(float)(centerwidth+Math.cos(deg2rad(angle))*width/3.0);
float startY = top+(float)(centerheight+Math.sin(deg2rad(angle))*height/3.0);
Path path = new Path();
path.moveTo(
startX,
startY);
path.lineTo(
left+(float)(centerwidth+Math.cos(deg2rad(angle+140))*width/4.0),
top+(float)(centerheight+Math.sin(deg2rad(angle+140))*height/4.0));
path.lineTo(
left+(float)centerwidth,
top+(float)centerheight
);
path.lineTo(
left+(float)(centerwidth+Math.cos(deg2rad(angle+220))*width/4.0),
top+(float)(centerheight+Math.sin(deg2rad(angle+220))*height/4.0)
);
path.lineTo(
startX,
startY
);
canvas.drawPath(path, p);
}
@ जेव, मुझे लगता है कि पहला दृष्टिकोण इस्तेमाल किया जा सकता है, विशेष रूप से, जहां आप x-axis और/या y-axis के आस-पास एक छवि या बिटमैप को घुमाने के लिए 'कैनवास' के रूप में घूर्णन विधियां नहीं रखते हैं, यह एक्सवाई-प्लेन में करता है। मुझे लगता है कि कोई 'कैमरा' ऑब्जेक्ट प्राप्त कर सकता है और आवश्यक 3 डी ट्रांसफॉर्मेशन कर सकता है और आखिरकार 'मैट्रिक्स' प्रस्तुति को प्राप्त करने के लिए 'getMatrix' पासिंग 'मैट्रिक्स' उदाहरण का उपयोग कर सकता है। अंत में, इस 'मैट्रिक्स' को 'drawBitmap' विधि में पास करें। विशेष रूप से, [यहां] (http://stackoverflow.com/questions/32554925/android-animate-rotation-of-map-marker-around-x-and-y-axis): कोई भी विचार। धन्यवाद! –