アナログ時計を作りたいのですが、問題があります。秒針、分針、時針に 3 つのイメージビューを使用します。そして今、私はそれらのそれぞれを中心に回転させたいのですが、できません。中心の周りの角度を指定してイメージビューを回転するにはどうすればよいですか?
質問する
4768 次
3 に答える
7
API 11 をターゲットにしている場合、最も簡単な方法は次のとおりです。
view.setPivotX(view.getWidth() / 2);
view.setPivotY(view.getHeight() / 2);
float rotation = //some value between 0f and 360f
view.setRotation(rotation);
于 2013-06-12T17:05:48.287 に答える
0
以下は、テキストビューを回転させるためのコードです。API 8 でも動作します。オブジェクトを作成するために必要なのは、カスタマイズされたテキストビューです。また、回転角度を設定する必要があります (必要に応じて平行移動も行います)。
public class VerticalTextView extends ImageView { 最終ブール値 topDown=true;
float iRotateAngel, iSetX, iSetY;
int iIndex;
Context context;
public int getiIndex()
{
return iIndex;
}
public void setiIndex(int iIndex)
{
this.iIndex = iIndex;
}
public float getiRotateAngel()
{
return iRotateAngel;
}
public void setiRotateAngel(float iRotateAngel)
{
this.iRotateAngel = iRotateAngel;
}
public float getiSetX()
{
return iSetX;
}
public void setiSetX(float iSetX)
{
this.iSetX = iSetX;
}
public float getiSetY()
{
return iSetY;
}
public void setiSetY(float iSetY)
{
this.iSetY = iSetY;
}
public boolean isTopDown()
{
return topDown;
}
public VerticalTextView(Context context)
{
super(context);
this.context = context;
}
public VerticalTextView(Context context, AttributeSet attrs)
{
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
super.onMeasure(heightMeasureSpec, widthMeasureSpec);
setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth());
}
@Override
protected boolean setFrame(int l, int t, int r, int b)
{
return super.setFrame(l+32, t+12, l + (b - t)+32, t + (r - l)+12);
}
@Override
public void draw(Canvas canvas)
{
if (topDown)
{
canvas.translate(this.iSetX, this.iSetY);
canvas.rotate(this.iRotateAngel);
}
else
{
canvas.translate(this.iSetX, this.iSetY);
canvas.rotate(this.iRotateAngel);
}
canvas.clipRect(0,0,getWidth(), getHeight(), android.graphics.Region.Op.REPLACE);
super.draw(canvas);
}
}
于 2014-03-04T10:20:48.957 に答える
-1
View クラスには、.setRoatation()
完全に機能するメソッドがあります。回転する度数を渡すだけで、デフォルトで中心を中心に回転します。
編集:
11 未満の API レベルでの画像の回転については、この投稿を参照してください。
于 2013-06-12T17:05:57.177 に答える