senator_x37 0 ارسال شده در ۲۷ دی ۱۳۹۴ گزارش اشتراک گذاری ارسال شده در ۲۷ دی ۱۳۹۴ با سلام و عرض ادب خدمت تمامی دوستان و عزیزان این انجمن اولین پستی هست که داخل انجمن میذارم و امیدوارم که این پست شروع پیشرفتمم تو زمینه اندورید باشه. بخشید دوستان بنده دارم یک پروژه برای درس گرفیک کامپیوتری می نویسم ، ینی یه برنامه با اندروید و کار با کانواس در اندورید. یک قطعه کد پیدا کردم براش حالا اگه بشه خاستم یک توضیح مختصر بدین که بفهمم این چیه ؟ ( کار این برنامم اینه که یه صفحه ایجاد کرده که با کشیدن دست روی صفحه نمایش خط میکشه ، متل نقاشی ولی بدون رنگ و ... ) کد : [shcode=java] package com.example.canvasandroid; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; public class CanvasView extends View { public int width; public int height; private Bitmap mBitmap; private Canvas mCanvas; private Path mPath; Context context; private Paint mPaint; private float mX, mY; private static final float TOLERANCE = 5; public CanvasView(Context c, AttributeSet attrs) { super(c, attrs); context = c; // we set a new Path mPath = new Path(); // and we set a new Paint with the desired attributes mPaint = new Paint(); mPaint.setAntiAlias(true); mPaint.setColor(Color.BLACK); mPaint.setStyle(Paint.Style.STROKE); mPaint.setStrokeJoin(Paint.Join.ROUND); mPaint.setStrokeWidth(4f); } // override onSizeChanged @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); // your Canvas will draw onto the defined Bitmap mBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); mCanvas = new Canvas(mBitmap); } // override onDraw @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // draw the mPath with the mPaint on the canvas when onDraw canvas.drawPath(mPath, mPaint); } // when ACTION_DOWN start touch according to the x,y values private void startTouch(float x, float y) { mPath.moveTo(x, y); mX = x; mY = y; } // when ACTION_MOVE move touch according to the x,y values private void moveTouch(float x, float y) { float dx = Math.abs(x - mX); float dy = Math.abs(y - mY); if (dx >= TOLERANCE || dy >= TOLERANCE) { mPath.quadTo(mX, mY, (x + mX) / 2, (y + mY) / 2); mX = x; mY = y; } } public void clearCanvas() { mPath.reset(); invalidate(); } // when ACTION_UP stop touch private void upTouch() { mPath.lineTo(mX, mY); } @Override public boolean onTouchEvent(MotionEvent event) { float x = event.getX(); float y = event.getY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: startTouch(x, y); invalidate(); break; case MotionEvent.ACTION_MOVE: moveTouch(x, y); invalidate(); break; case MotionEvent.ACTION_UP: upTouch(); invalidate(); break; } return true; } } [/shcode] حالا میخام بدونم اگه بخام مثلا چندتا باتن کنارش بذارم که با انتخاب بشه رنگ قلم رو انتخاب کرد یا رنگ صفحه زمینه رو تغییر داد باید چه کرد؟ بسیار سپاس نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .