화면에서 이미지를 이동하고 싶지만 제대로 할 수는 있지만 제대로는 할 수 없습니다. 이미지는 아래로 잘 내려 가고 일단 스크린의 아래쪽으로 이동하면 다른 방향으로 위로 올라 가기를 원합니다.화면에서 이미지를 이동하는 방법?
다음은 내가 시도한 것입니다. 아래의 코드에서 margenMaXX
화면의 폭 및 margenmaxy
화면 높이
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
Thread myThread = new Thread(new UpdateThread());
myThread.start();
public class UpdateThread implements Runnable {
@Override
public void run() {
//... code to manipulate position
while (i<margenMaxX){
if(j<margenmaxy) {
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
/*mDrawable.setBounds(i, j ,i+ width, i+ height);
mDrawable.draw(cc);
invalidate();*/
}
});
Thread.sleep(200);
i=i+10;
j=j+10;
} catch (InterruptedException e) {
e.printStackTrace();
}
}else if(j>=margenmaxy-height){
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
/*mDrawable.setBounds(i, j ,i+ width, i+ height);
mDrawable.draw(cc);
invalidate();*/
}
});
Thread.sleep(200);
i=i-10;
j=j-10;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
public class AnimatedView extends ImageView {
public AnimatedView(Context context) {
super(context);
// TODO Auto-generated constructor stub
mDrawable = new ShapeDrawable(new OvalShape());
mDrawable.getPaint().setColor(0xffffAC23);
}
protected void onDraw(final Canvas cc) {
final Context context = null;
mDrawable.setBounds(i, j ,i+ width, i+ height);
mDrawable.draw(cc);
invalidate();
}
}
업데이트 1 :
이 코드를 사용하여, 공 위쪽과 타측 예정이 명중 후 바닥. 이제 나는 공이 올바른 경계선에 도달했을 때 공이 돌아 오기를 원합니다. 나는 그것을 코딩했으나 돌아 오지 않는다. 최종 목표는 볼을 왼쪽이나 오른쪽에서 가져와야하는 게임을 개발하는 것입니다. 그것은 땅에 부딪쳐 반대 방향으로 들어가 벽을 치고 돌아와야합니다. 게임이 진행되는 동안 볼은 반드시이 작업을 수행해야합니다.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
Thread myThread = new Thread(new UpdateThread());
myThread.start();
public class UpdateThread implements Runnable {
boolean mMoveDown=false;
boolean mMoveUp = false;
@Override
public void run() {
while(!mMoveUp) {
// Move the image down and right.
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
}
});
Thread.sleep(200);
i=i+10;
j=j+10;
// Try posting a runnable to the UI thread to update the view.
} catch (InterruptedException e) {
e.printStackTrace();
}if(j >= margenmaxy)
{
// Change to moving up phase.
mMoveUp = true;
}
}
while(mMoveUp){
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
}
});
Thread.sleep(200);
i=i + 10;
j=j - 10;
} catch (InterruptedException e) {
e.printStackTrace();
} if(i >= margenMaxX)
{
// Change to moving up phase.
mMoveDown = true;
}
}while(mMoveDown){
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
}
});
Thread.sleep(200);
i=i - 10;
j=j + 10;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class AnimatedView extends ImageView {
public AnimatedView(Context context) {
super(context);
// TODO Auto-generated constructor stub
mDrawable = new ShapeDrawable(new OvalShape());
mDrawable.getPaint().setColor(0xffffAC23);
}
protected void onDraw(final Canvas cc) {
final Context context = null;
mDrawable.setBounds(i, j ,i+ width, j+ height);
mDrawable.draw(cc);
invalidate();
}
}
안녕하세요, y 방향 반전이 발생하기 전에 화면에서 x 방향으로 화면이 벗어날 수 있습니다. 또한, (j> = marginenmaxy - height)는 (j
batbrat
@batbrat 안녕하세요, 공이 화면에서 벗어나지 않고 위쪽에서 아래쪽으로 향하고 있지만 아래쪽 위치에 도달하면 다른 방향으로 올라 가야합니다. –
화면에서 꺼질 때까지 계속 움직여야합니까? 이미지의 아래쪽이 화면 하단에 닿으면 움직이지 않습니다 ...? – batbrat