2012-01-17 72 views
0

我有一個自定義的ImageView('CustomImageView')和一個活動'ImageViewActivity'的線性佈局的編輯文本。編輯文本最初設置爲不可見。當觸摸customimageview並調用onDraw()時,我希望將Edit-text的可見性設置爲可見。我應該在哪裏放置這個代碼? 代碼ImageViewActivity:如何在觸摸自定義子視圖時實現父活動代碼?

public class ImageViewActivity extends Activity { 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.custom_imageview); 


    } 
} 

而對於CustomImageView代碼:

public class CustomImageView extends ImageView { 

Paint paint = new Paint(); 
float xp = -1, yp = -1; 
private Options opt; 


public CustomImageView(Context context) { 
    super(context); 
    init(); 
} 

public CustomImageView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    init(); 
} 

public CustomImageView(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
    init(); 
} 

public void init() { 

    opt = new BitmapFactory.Options(); 
    opt.inJustDecodeBounds = true; 

    paint.setAntiAlias(true); 
    paint.setColor(Color.RED); 

    paint.setStyle(Paint.Style.FILL); 

} 

@Override 
public boolean onTouchEvent(MotionEvent event) { 

     if (event.getAction() == MotionEvent.ACTION_UP) { 

     xp = event.getX(); 
     yp = event.getY(); 

     invalidate(); 

    } 
    return true; 
} 

@Override 
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
     //some code 
     setMeasuredDimension(width, height); 

} 



@Override 
protected void onDraw(Canvas canvas) { 

    super.onDraw(canvas); 

    if (xp >= 0 && yp > 0) { 

      canvas.drawCircle(xp, yp, 20, paint); 

     } 
    } 


} 
+0

將自定義ImageView傳遞給EditText對象。然後將其設置爲一個字段,您可以儘可能多地混淆它。 – AJcodez 2012-01-17 10:41:50

+0

那就是我所做的。謝謝 :) – vishalaksh 2012-01-17 11:20:02

回答

0

在您的customImageview類上實現touch偵聽器,然後調用edittext以隱藏或顯示您所需的自定義視圖的觸摸結果,您必須在customview上定義touchlistener而不是活動,並且您可以管理在customview或其他方法touchevent中的父級活動是實現觸摸偵聽器對你的活動,並找到觸摸的視圖,如果觸摸視圖是您的自定義視圖,然後使可見您的Edittext。那麼你不需要在onDraw()中做任何關於edittext的事情。

0

我建議設置視圖可見,一旦你檢測到您的特定視圖觸摸動作。具體來說,用戶如何觸摸它並不重要,因爲一旦他們觸摸它,你想顯示你的視圖(至少這是你說你想要的)。

相關問題