그래서 나는 imageview를 가지고 있는데, 그 위치에 사용자가 닿는 위치를 애니메이션으로 적용 해 적용했습니다 ... 그 작업을 잘 ... bt 내가 활동에 시간 업데이터를 추가하면 분명히 스레드에서 실행 중입니다 ... 번역 애니메이션이 비정상적으로 행동하기 시작합니다. 즉 범위를 벗어났습니다 ... 다른 방법을 시도했습니다 ... 아무것도 작동하지 않았습니다 ... 시간 소멸자를 제거하고 dgital 시계 위젯을 사용했습니다. 하지만 다시는 스레드를 사용할 때 생기는 애니메이션 문제
가 번역 애니메이션 코드public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if(event.getAction() == MotionEvent.ACTION_MOVE)
{
float f1 = event.getX();
swidth=image.getWidth();
((MaskedTextView) findViewById(R.id.text)).setVisibility(View.INVISIBLE);
android.widget.RelativeLayout.LayoutParams localLayoutParams = (android.widget.RelativeLayout.LayoutParams)image.getLayoutParams();
barwidth=bar.getWidth();
bwidth=barwidth-swidth;
android.widget.RelativeLayout.LayoutParams localLayoutParams2 = localLayoutParams;
localLayoutParams2.leftMargin=(int) event.getX();
if (localLayoutParams.leftMargin<bwidth && f1<bwidth)
{
TranslateAnimation anim = new TranslateAnimation(localLayoutParams.leftMargin,f1, 0, 0);
anim.setStartOffset(0L);
anim.setDuration(500L);
anim.setFillBefore(true);
image.startAnimation(anim);
image.invalidate();
}
}
if (event.getAction() == MotionEvent.ACTION_UP)
{
float f1=event.getX();
android.widget.RelativeLayout.LayoutParams localLayoutParams = (android.widget.RelativeLayout.LayoutParams)image.getLayoutParams();
if(f1<bwidth)
{
TranslateAnimation anim=new TranslateAnimation(f1,0,0,0);
anim.setStartOffset(0L);
anim.setDuration(500L);
anim.setFillBefore(true);
image.startAnimation(anim);
image.invalidate();
}
else
{
if(soundsEnabled && !silent)
mpDot.start();
SwipeImage.this.finish();
}
}
return true;
}
이 좀 봐 ... 디지털 시계합니다 alse 시간을 업데이트 스레드를 사용하는 작동하지 않습니다 60 초마다 시간을 업데이트하는 간단한 코드입니다 ..
new Timer().schedule(new MyTimerTask(), 0, 60000);
public class MyTimerTask extends TimerTask {
private Runnable runnable = new Runnable() {
public void run() {
Calendar c = Calendar.getInstance();
int hr;
if(DateFormat.is24HourFormat(getApplicationContext()))
hr=c.get(Calendar.HOUR_OF_DAY);
else
hr=c.get(Calendar.HOUR);
int minute = c.get(Calendar.MINUTE);
if(minute<10)
timeTextView.setText(String.valueOf(hr)+":0"+String.valueOf(minute));
else
timeTextView.setText(String.valueOf(hr)+":"+String.valueOf(minute));
}
};
public void run() {
handler.post(runnable);
//invalidate();
}
}*/
하는 PLZ 사람을 좀 도와 ... 난 그냥 사전에
귀하의 요지를 얻었지만 부드러운 움직임을 보여 주어야합니다 .dats 왜 애니메이션을 사용합니까 ... 괜찮습니까? xclude ... den thread 문제가 해결 될 예정입니까? – user632905
그럴 생각이 없습니다. 나는 애니메이션이 그런 경우 움직임을 부드럽게하는데 도움이되지 않는다고 생각한다. 애니메이션을 제거하면 뷰를 드래그하는 동안 전반적인 성능이 향상됩니다. – Ronnie
k는 시도 할 것입니다 ... thnx 4 dat advice .. 비록 – user632905