0
我的程序是動畫imageView。這個圖像應該在屏幕的中心。問題是,圖像不在中心。我試圖做到這一點android - 圖像對齊錯誤
if (x<0) {
x = this.getWidth()/2;
y = this.getHeight()/2;
}
但該方案並沒有給予青睞的結果。這是否是以它爲中心的錯誤方式,或者出了什麼問題?
public class AnimatedView extends ImageView{
private Context mContext;
int x = -1;
int y = -1;
private int xVelocity = 10;
private int yVelocity = 5;
private Handler h;
private final int FRAME_RATE = 30;
boolean continueAnimation = true;
private ImageView imageView;
private BitmapDrawable ball;
public AnimatedView(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
h = new Handler();
imageView = (ImageView) findViewById(R.id.imageview1);
}
private Runnable r = new Runnable() {
@Override
public void run() {
if(continueAnimation) {
invalidate();
}
}
};
protected void onDraw(Canvas c) {
ball = (BitmapDrawable) mContext.getResources().getDrawable(R.drawable.ballrot);
if (x<0) {
x = this.getWidth()/2;
y = this.getHeight()/2;
}
else {
x += xVelocity;
if ((x > this.getWidth() - ball.getBitmap().getWidth()) || (x < 0)) {
boolean continueAnimation = false;
}
}
c.drawBitmap(ball.getBitmap(), x, y, null);
if(continueAnimation)
{
h.postDelayed(r, FRAME_RATE);
}
else {
x = this.getWidth()-ball.getBitmap().getWidth();
}
}
}
的左上位置的假設難道我沒有這樣做的if語句? X是圖像對象的位置,this.getWidth()以像素爲單位返回我的視圖的寬度。跟高度一樣 –
不,他們不一樣。 –
以什麼方式?我在這種特殊情況下需要如何做到這一點? –