ورود

View Full Version : مشکل رسم خط



*bahar*
یک شنبه 15 فروردین 1395, 13:37 عصر
سلامممم
من این کد برای ترسیم یک خط بین دو دکمه نوشتم، زمانی که بهش مقدار عددی میدم خط و میکشه و کد درست کار میکنه
اما موقعی که میخوام بر اساس موقعیت دکمه ها کار کنه مثل این کد، در اجرا هیچی رو نمایش نمیده
ممنون میشم راهنمایی کنید


Button b1= (Button) findViewById(R.id.btn3);
Button b2= (Button) findViewById(R.id.btn4);


ImageView drawingline = (ImageView) findViewById(R.id.drawline);
Bitmap bitmap = Bitmap.createBitmap((int) getWindowManager()
.getDefaultDisplay().getWidth(), (int) getWindowManager()
.getDefaultDisplay().getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
drawingline.setImageBitmap(bitmap);
[Paint paint = new Paint();
paint.setColor(Color.BLACK);
paint.setStrokeWidth(10);
float startX =b1.getX();
float startY =b1.getY();
float stopX =b2.getX();
float stopY =b2.getY();
canvas.drawLine(startX, startY, stopX, stopY, paint);

shahin bahari
یک شنبه 15 فروردین 1395, 16:39 عصر
این روش کشیدن درست نیست! برای این که بتونید خودتون چیزی رو رسم کنید لازم هست که یه کلاس رو از view یا کلاس های مشتق شده از اون extend کنید و توی canvas که توی متد onDraw بهتون میده رسم کنید. دلیل اینکه کدتون کار نمیکنه هم به خاطر این هست که getX وy تو این جای برنامه 0 رو بر میگردونه!
ولی برای این کار شما اصلا نیاز به این کار نیست چون با یه Relative layout میتونید بگید که یه ویو همیشه بین 2 تا ویو دیگه باشه....

*bahar*
یک شنبه 15 فروردین 1395, 17:33 عصر
این روش کشیدن درست نیست! برای این که بتونید خودتون چیزی رو رسم کنید لازم هست که یه کلاس رو از view یا کلاس های مشتق شده از اون extend کنید و توی canvas که توی متد onDraw بهتون میده رسم کنید. دلیل اینکه کدتون کار نمیکنه هم به خاطر این هست که getX وy تو این جای برنامه 0 رو بر میگردونه!
ولی برای این کار شما اصلا نیاز به این کار نیست چون با یه Relative layout میتونید بگید که یه ویو همیشه بین 2 تا ویو دیگه باشه....
ممنون ازپاسختون
اما من دکمه ها رو در gridlayout قرار دادم، یعنی برای این ویو هم یه خانه بین اون btn ها اختصاص بدم؟

shahin bahari
دوشنبه 16 فروردین 1395, 13:17 عصر
ممنون ازپاسختون
اما من دکمه ها رو در gridlayout قرار دادم، یعنی برای این ویو هم یه خانه بین اون btn ها اختصاص بدم؟

بین دوتا دکمه یه ویو قرار بدید و رنگ پس زمینه اون رو به رنگی که می خواید قرار بدید. ارتفاع رو هم 3dp یا مقداری که میخواید. این میشه اون خطی که می خواید. نیازی به custom view هم نیست.