অ্যান্ড্রয়েড ক্যানভাস আঁকানো আয়তক্ষেত্র


104

কিভাবে ইত্যাদি খালি আয়তক্ষেত্র আঁকবেন বর্ডারউইথ = 3 এবং বর্ডার কালার = কালো এবং আয়তক্ষেত্রের অংশের মধ্যে সামগ্রী বা রঙ নেই। ক্যানভাসে কোন ফাংশনটি ব্যবহার করবেন

void drawRect(float left, float top, float right, float bottom, Paint paint)

void drawRect(RectF rect, Paint paint)

void drawRect(Rect r, Paint paint)

ধন্যবাদ।

আমি এই উদাহরণ চেষ্টা

Paint myPaint = new Paint();
myPaint.setColor(Color.rgb(0, 0, 0));
myPaint.setStrokeWidth(10);
c.drawRect(100, 100, 200, 200, myPaint);

এটি আয়তক্ষেত্র আঁকে এবং এটি কালো রঙ দিয়ে পূর্ণ করে তবে আমি এই চিত্রটির মতোই কেবল "ফ্রেম" চাই:

এখানে চিত্র বর্ণনা লিখুন


উত্তর:



124

" আয়তক্ষেত্রের অংশের অংশে রঙের রঙ নেই " ধরে নেওয়া মানে আপনি আয়তক্ষেত্রের মধ্যে বিভিন্ন পূরণ করতে চান; আপনার আপনার আয়তক্ষেত্রের মধ্যে একটি স্ট্রোক প্রস্থ 0 এবং পছন্দসই পূরণের রঙ (গুলি) এর মধ্যে একটি আয়তক্ষেত্র আঁকতে হবে।

উদাহরণ স্বরূপ:

DrawView.java

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

public class DrawView extends View {
    Paint paint = new Paint();

    public DrawView(Context context) {
        super(context);            
    }

    @Override
    public void onDraw(Canvas canvas) {
        paint.setColor(Color.BLACK);
        paint.setStrokeWidth(3);
        canvas.drawRect(30, 30, 80, 80, paint);
        paint.setStrokeWidth(0);
        paint.setColor(Color.CYAN);
        canvas.drawRect(33, 60, 77, 77, paint );
        paint.setColor(Color.YELLOW);
        canvas.drawRect(33, 33, 77, 60, paint );

    }

}

এটি শুরু করার ক্রিয়াকলাপ:

StartDraw.java

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;

public class StartDraw extends Activity {
    DrawView drawView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        drawView = new DrawView(this);
        drawView.setBackgroundColor(Color.WHITE);
        setContentView(drawView);

    }
}

... এইভাবে চালু হবে:

এখানে চিত্র বর্ণনা লিখুন


প্রকৃতপক্ষে এটিই আমার স্ক্রিনকাস্ট.com/t/oFYF5kGtw5B প্রয়োজন যা আমি লাল আয়তক্ষেত্রটি পরে সমস্ত আঁকানোর পরে কেবল আয়তক্ষেত্রটি যুক্ত করার জন্য এটি কি সম্ভব?
কেইক

21
এটি হ'ল পেইন্ট.সেটসাইল (স্টাইল। স্ট্রোক); সাহায্যের জন্য ধন্যবাদ.
কেইক

আমি মনে করি ডনগ্রু এবং হুয়ান এখানে দুর্দান্ত ব্যাখ্যা দিয়েছেন .. তবে লেখক যা জিজ্ঞাসা করছেন তার সঠিক এক লাইন উত্তরটি @ ইয়াক - পেইন্ট.সেটাইল (পেইন্ট.স্টাইল.এসট্রোক) দ্বারা সরবরাহ করা হয়েছে
আলকেমিস্ট

এই উত্তরটি উত্তরের সাথে খাপ খায় না। এটি কর্নট উত্তর দেখায় না। পান্ডুরের উত্তরটি সঠিক।
Sonhja


7

একটি নতুন ক্লাস তৈরি করুন MyView, Which extends ViewonDraw(Canvas canvas)আয়তক্ষেত্র আঁকতে পদ্ধতিটি ওভাররাইড করুন Canvas

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.View;

public class MyView extends View {

 Paint paint;
 Path path;

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

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

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

 private void init(){
  paint = new Paint();
  paint.setColor(Color.BLUE);
  paint.setStrokeWidth(10);
  paint.setStyle(Paint.Style.STROKE);

 }

 @Override
 protected void onDraw(Canvas canvas) {
  // TODO Auto-generated method stub
  super.onDraw(canvas);

  canvas.drawRect(30, 50, 200, 350, paint);
  canvas.drawRect(100, 100, 300, 400, paint);
  //drawRect(left, top, right, bottom, paint)

 }

}

তারপরে আপনার জাভা ক্রিয়াকলাপটি setContentView()আমাদের কাস্টম ভিউ, মাইভিউ.এভাবে কল করুন using

    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(new MyView(this));
  }

আরও তথ্যের জন্য আপনি এখানে দেখতে পারেন

http://developer.android.com/reference/android/graphics/Canvas.html



0

এটি বেশ দেরি হয়েছে কিনা জানেন না, তবে আমি যেভাবে সমাধান করেছি তা হল চারটি পাতলা আয়তক্ষেত্র আঁকুন যা একসাথে একটি বড় সীমানা তৈরি করেছিল up একটি আয়তক্ষেত্র দিয়ে সীমানা আঁকানো যদি আপনি সমস্ত অস্বচ্ছ, তাই আপনার সীমানার প্রতিটি প্রান্ত আলাদাভাবে আঁকতে হবে und


বা অন্যটির মধ্যে একটি দুটি আয়তক্ষেত্র :)
P-RAD

অথবা চতুর্থ লাইনের জন্য একটি বৃত্ত, পটভূমির রঙের একটি বৃত্ত, একটি তিনটি বিভাগযুক্ত ড্রলাইনস () এবং একটি আয়তক্ষেত্র।
তাতারাইজ

0

কোডটি স্ট্রোক হিসাবে পেইন্টের কেবল স্টাইল স্টাইল সেট করে

paint.setStyle(Paint.Style.STROKE);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.