我有一个custom ImageView
我可以绘制,缩放和绘制点(坐标)。
I have a button "reset" which delete the coordinates i draw
但是当我点击时,我的imageView不会刷新,当我触摸屏幕时,它会刷新。
要看一些代码
此处按钮的onClick
- btnRes
是我需要帮助的按钮!
//this method is on the "Main extends Activity"
public void onClick(View v) {
switch(v.getId()){
case R.id.btnFin:
break;
case R.id.btnInv:
break;
case R.id.btnRes://start over
Imagen.listaPtos.clear();
//refreshing image
imagen.invalidate();//dont works
imagen.refreshDrawableState();//dont works neither
break;
}
}
关于My class Imagen的一些事情是为了理解代码之后的
public class Imagen extends ImageView
static ArrayList <Marking> listaPtos = new ArrayList<Marking>();
来自Imagen的一些代码
@Override
public void onDraw(Canvas c){
Log.d("onDraw","pinta="+pinta);
c.drawBitmap(bitmap, matrix, paintFondo);
if(listaPtos!=null){
for(Marking mark:listaPtos){
c.drawBitmap(cruz, mark.x, mark.y, paintPuntos);
}
}
}
//for coordinates
class Marking{
int x;
int y;
Marking(int x, int y){
this.x = x;
this.y = y;
}
Marking(){}
int getX(){
return x;
}
int getY(){
return y;
}
void setX(int x){
this.x = x;
}
void setY(int y){
this.y = y;
}
}
任何想法?
答案 0 :(得分:0)
我用这个代码在onDraw上解决它:
((Main) context).runOnUiThread(new Runnable() {
@Override
public void run() {
Imagen.this.invalidate();
}
});
不是最好的解决方案,而是工作的人