enthält Ich habe einen Framelayout, die in der Mitte und vier Imageview zur Laufzeit hinzufügen, enthält es Haupt-Bild, mit dem Benutzer andere Aktion durchführen kann, aber ich vor dem Problem mit drehen Layout-AnsichtDrehen Frame-Layout, die dynamischen Tasten
aktuell Hauch von drehen Taste mache ich das
public void setRotateListener() {
mRotateImage.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
float x = event.getX(0);
float y = event.getY(0);
float theta = getTheta(x, y);
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_POINTER_DOWN:
theta_old = theta;
break;
case MotionEvent.ACTION_MOVE:
float delta_theta = theta - theta_old;
theta_old = theta;
int direction = (delta_theta > 0) ? 1 : -1;
angle += 3 * direction;
Log.d("Tag", "rotate angle : " + obj.getHeight());
obj.setRotation(angle);
notifyListener(direction);
break;
}
return true;
}
});
}
private float getTheta(float x, float y) {
float sx = x - (obj.getWidth()/2.0f);
float sy = y - (obj.getHeight()/2.0f);
float length = (float) Math.sqrt(sx * sx + sy * sy);
float nx = sx/length;
float ny = sy/length;
float theta = (float) Math.atan2(ny, nx);
final float rad2deg = (float) (180.0/Math.PI);
float thetaDeg = theta * rad2deg;
return (thetaDeg < 0) ? thetaDeg + 360.0f : thetaDeg;
}
, aber ich kann nicht das erwartete Ergebnis bekomme ich bereits auf diesen Link finden sie auch https://github.com/rprouse/XkcdClock sowie versuchen, mit Gestik und Animation zu drehen, aber es scheint nicht Arbeiten nach meiner Bewegung auf dem Bildschirm
Ich kann nicht herausfinden, wie Sie wa nt zu drehen und was ist dein aktuelles Problem. – mmlooloo
von oben Bild können Sie den Drehknopf auf dem Bild tatsächlich sehen, dass Knopf dynamisch auf dem Rahmen hinzugefügt wird, so dass ich sowohl Uhr als auch gegen den Uhrzeigersinn drehen möchte, also in welcher Richtung Benutzeraktion auf dem Layout, ganzen Rahmen und bewegt wird Auch innerhalb des Bildes kann man sich in dieser Richtung drehen.und mein derzeitiges Problem ist, dass es jetzt in keiner Richtung glatt rotieren kann. @ mmlooloo –
Wo ist dein Frame-Layout auf diesem Screenshot? braucht es den ganzen Bildschirm oder nur das blaue Quadrat? Was ist genau dein Problem? Schaffst du es zu drehen, aber es ist nicht glatt genug? oder hast du gar keine Rotation? – user2641570