2010-03-27 16 views
7

जब मैं स्क्रीन में घुमावदार स्पर्श करता हूं तो उस समय कुछ बिंदु के लिए चमक (कुछ भी फ्लैश या चमकदार नहीं) होगा। उसको कैसे करे? कोई उदाहरण या विचार ?? मुझे बटन डालने के लिए इसे लागू करना होगा। बिल्कुल जब मैं स्क्रीन को छूता हूं तो यह कुछ समय चमक जाएगा और फिर उस बिंदु पर बटन दिखाई देगा जहां मैंने स्पर्श किया था।चमक?

उत्तर

11

आपको कस्टम व्यू बनाने और ऑनटॉचेंट और ड्रॉ ओवरराइड करना होगा। यहां एक बहुत ही सरल उदाहरण है। यदि आप पैकेज नाम i.e. com.test.CustomView का उपयोग करते हैं तो आप किसी XML दृश्य में कस्टम दृश्य का संदर्भ दे सकते हैं।

public class CustomView extends ImageView{ 
    public CustomView(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 
    public CustomView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 
    public CustomView(Context context) { 
     super(context); 
    } 
    boolean drawGlow = false; 
    //this is the pixel coordinates of the screen 
    float glowX = 0; 
    float glowY = 0; 
    //this is the radius of the circle we are drawing 
    float radius = 20; 
    //this is the paint object which specifies the color and alpha level 
    //of the circle we draw 
    Paint paint = new Paint(); 
    { 
     paint.setAntiAlias(true); 
     paint.setColor(Color.WHITE); 
     paint.setAlpha(50); 
    }; 

    @Override 
    public void draw(Canvas canvas){ 
     super.draw(canvas); 
     if(drawGlow) 
      canvas.drawCircle(glowX, glowY, radius, paint); 
    } 
    @Override 
    public boolean onTouchEvent(MotionEvent event){ 
     if(event.getAction() == MotionEvent.ACTION_DOWN){ 
      drawGlow = true; 
     }else if(event.getAction() == MotionEvent.ACTION_UP) 
      drawGlow = false; 

     glowX = event.getX(); 
     glowY = event.getY(); 
     this.invalidate(); 
     return true; 
    } 
} 
+0

क्या होगा यदि मेरे पास एक व्यूपेजर है, जिसके लिए ऑन टचवेन्ट की आवश्यकता है? – Machado

संबंधित मुद्दे