2016-03-24 17 views
-1

Özel bir görünümüm var ve ben ondraw'u geçersiz kıldım. Programımı çalıştırdığımda, invalidate yöntemi, benim öykünücümde ondraw güncelleştiriyor, ancak gerçek telefonda hiç çalışmıyor ve görünüm telefonda sabitleniyor.Invalidate() neden olmasın?

Herkes nedenini biliyor mu? !

burada benim kodudur: ülkeme takvim nesnesi için saat dilimi ayarlayın zaman

package com.example.canvas; 

import java.text.SimpleDateFormat; 
import java.util.Calendar; 

import android.content.Context; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.graphics.Paint; 
import android.os.Handler; 
import android.view.View; 

public class Myview extends View{ 
String second="0"; 
int r=100; 
public Myview(Context context) { 
    super(context); 


} 
@Override 
protected void onDraw(Canvas canvas) { 

    Paint paint=new Paint(); 
    paint.setColor(Color.GREEN); 
    paint.setStrokeWidth(12); 
    canvas.drawLine(getWidth()/2f, getHeight()/2f,getWidth()/2f+  ((r-18.0f)*(float)Math.cos(Math.toRadians((Float.valueOf(second)/60f*360f) -90.0f))) ,getHeight()/2f+((r-18.0f)*(float)Math.sin(Math.toRadians ((Float.valueOf(second)/60f*360f)-90.0f))), paint); 
    update(); 
    super.onDraw(canvas); 
} 
private void update() { 
    Handler h=new Handler(); 
    h.postDelayed(new Runnable() { 

     @Override 
     public void run() { 
      Calendar c=Calendar.getInstance(); 
      SimpleDateFormat ss=new SimpleDateFormat("ss"); 
      second=ss.format(c.getTime()); 
      invalidate(); 


     } 
    }, 1000); 





} 
} 
+1

Lütfen en az bir kod parçası gösterin. Teşekkürler. – statosdotcom

+0

işte benim kodum – user6037288

cevap

0

Bingo işlenmiş geçersiz ve OnDraW emülatörü ve reel telefonda güncellendi.