У меня есть проблема с использованием onTouchEvent в классе, который редактировать ImageView в mainActivityне работает onTouchEvent в классе, который редактировать ImageView с помощью Canvas
.XML файл я работаю с этим ImageView
Здесь Есть класс, запись/переписать на ImageView
public class ItemsInPacagesImageView {
int vsk,vsk2, srk,vskconst,sizetext;
Canvas c;
Paint paint;
ImageView imageview;
Typeface font;
myTrip prvy;
String nazovtripu;
Context context;
public ItemsInPacagesImageView(ImageView img,Context context,String nazovtripu,int pacage) {
//super(context);
this.imageview=img;
this.nazovtripu=nazovtripu;
this.context=context;
prvy= DeSerializuj(nazovtripu);
// Serializuj(prvy,nazovtripu);
vsk = context.getResources().getDimensionPixelSize(R.dimen.vyskalist);
if (prvy.getPocItem()!=pacage){
vsk= vsk*prvy.getPocItem();}
vsk2 = context.getResources().getDimensionPixelSize(R.dimen.vyskatext);
srk = context.getResources().getDimensionPixelSize(R.dimen.sirkafulllist);
vskconst = context.getResources().getDimensionPixelSize(R.dimen.vyskalist2);
sizetext = context.getResources().getDimensionPixelSize(R.dimen.sizetext);
font = Typeface.createFromAsset(context.getAssets(), "fonts/Roboto-Light.ttf");
img.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, vsk));
Bitmap b = Bitmap.createBitmap(srk,
vsk, Bitmap.Config.ARGB_8888);
c = new Canvas(b);
c.drawColor(Color.WHITE);
imageview.setImageBitmap(b);
paint = new Paint();
paint.setAntiAlias(true);
paint.setStyle(Paint.Style.FILL);
for (int i=1;i<50;i++) {
if (prvy.citajItem(0,i)!=null) {
int pom=vsk2 + (i-1)*vskconst;
DalsiPrvok(paint, c, prvy.citajItem(0,i), 450, pom, sizetext,font);
// prvy.setPocItem(prvy.getPocItem()+1);
} else {break;}
}
imageview.invalidate();
}
protected void DalsiPrvok(Paint paint, Canvas canvas, String text, float xx, float yy, double aa, Typeface font) {
paint.setColor(Color.BLACK);
paint.setTypeface(font);
float textSize = paint.getTextSize();
paint.setTextSize((float) aa);
canvas.drawText(text, xx, yy, paint);
paint.setTextSize(textSize);
}
public boolean onTouchEvent(MotionEvent event) {
int e = event.getAction(); // vrati parametre udalosti
if (e == MotionEvent.ACTION_DOWN) {
paint.setColor(Color.YELLOW);
c.drawRect(0,0,srk,vsk,paint);
imageview.invalidate();
}
// HighScoreZ();
return false;
}
public myTrip DeSerializuj(String odkial) {
odkial=odkial+".dat";
myTrip prvy = null;
try {
File file = new File(context.getFilesDir(), odkial);
FileInputStream fi = new FileInputStream(file);
ObjectInputStream oi = new ObjectInputStream(fi);
prvy = (myTrip) oi.readObject();
oi.close();
fi.close();
} catch (Exception e) {
e.printStackTrace();
}
return prvy;
}
public void Serializuj(myTrip serTrip,String kam){
kam=kam + ".dat";
try {
File file = new File(context.getFilesDir(), kam);
FileOutputStream fo = new FileOutputStream(file);
ObjectOutputStream ou = new ObjectOutputStream(fo);
ou.writeObject(serTrip);
ou.close();
fo.close();
} catch (Exception e) {
e.printStackTrace();
}
}
Я onTouchEvent с тонким письмом, потому что я не могу использовать onTouchEvent, если запустить программу. Я пробовал расширять ImageView или View или мою MainActivity. Если я расширяю ↑ onTouchEvent, это хорошие письма, но я не получил код на onTouchEvent.
Весь код работает хорошо, этот класс пишите на Imageview on Mainactivity all. Но мне нужно Реализовать в onTouchEvent ...
я называю ДАННОЙ класс по MainActivity ..
ItemsInPacagesImageView itemimg= new ItemsInPacagesImageView(imglist1,tentocontext,druhy.getNazovTripu(),0);
Пожалуйста, если есть какие-то идеи АКО решить мою проблему Помогите мне.
Thanks
Я пытаюсь реализовать «реализует GestureDetector.OnGestureListener, GestureDetector.OnDoubleTapListener», но если я пытаюсь debugg программа не может перейти в detecdor код. – user6651666