Android - OnDraw()にアクセスできません -- android フィールド と xml フィールド と drawing フィールド 関連 問題

Android - not able to access onDraw()












-1
vote

問題

日本語

私はアクティビティにサイズ変更可能な長方形を示す必要があります。

マイXMLファイル:

<事前> <コード> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/layout" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".exampleActivity"> <ImageView android:id="@+id/office" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/office" android:src="@raw/office" /> <com.lambdahash.sonic.example.draw.DrawView android:id="@+id/drawView" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout>

このアクティビティに矩形を表示するためのコード:

<事前> <コード> public class DrawView extends View { Point point1, point3; Point point2, point4; /** * point1 and point 3 are of same group and same as point 2 and point4 */ int groupId = -1; private ArrayList<ColorBall> colorballs = new ArrayList<ColorBall>(); // array that holds the balls private int balID = 0; // variable to know what ball is being dragged Paint paint; Canvas canvas; public DrawView(Context context) { super(context); paint = new Paint(); setFocusable(true); // necessary for getting the touch events canvas = new Canvas(); // this.setWillNotDraw(false); //? Log.d("TEST:","DrawView() being called."); // setting the start point for the balls point1 = new Point(); point1.x = 50; point1.y = 20; point2 = new Point(); point2.x = 150; point2.y = 20; point3 = new Point(); point3.x = 150; point3.y = 120; point4 = new Point(); point4.x = 50; point4.y = 120; // declare each ball with the ColorBall class colorballs.add(new ColorBall(context, R.drawable.gray_circle, point1)); colorballs.add(new ColorBall(context, R.drawable.gray_circle, point2)); colorballs.add(new ColorBall(context, R.drawable.gray_circle, point3)); colorballs.add(new ColorBall(context, R.drawable.gray_circle, point4)); } public DrawView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public DrawView(Context context, AttributeSet attrs) { super(context, attrs); paint = new Paint(); setFocusable(true); // necessary for getting the touch events canvas = new Canvas(); // setting the start point for the balls point1 = new Point(); point1.x = 50; point1.y = 20; point2 = new Point(); point2.x = 150; point2.y = 20; point3 = new Point(); point3.x = 150; point3.y = 120; point4 = new Point(); point4.x = 50; point4.y = 120; // declare each ball with the ColorBall class colorballs.add(new ColorBall(context, R.drawable.gray_circle, point1)); colorballs.add(new ColorBall(context, R.drawable.gray_circle, point2)); colorballs.add(new ColorBall(context, R.drawable.gray_circle, point3)); colorballs.add(new ColorBall(context, R.drawable.gray_circle, point4)); } // the method that draws the balls @Override protected void onDraw(Canvas canvas) { Log.d("TEST:","onDraw() being called."); // canvas.drawColor(0xFFCCCCCC); //if you want another background color paint.setAntiAlias(true); paint.setDither(true); paint.setColor(Color.parseColor("#55000000")); paint.setStyle(Paint.Style.FILL); paint.setStrokeJoin(Paint.Join.ROUND); // mPaint.setStrokeCap(Paint.Cap.ROUND); paint.setStrokeWidth(5); canvas.drawPaint(paint); paint.setColor(Color.parseColor("#55FFFFFF")); if (groupId == 1) { canvas.drawRect(point1.x + colorballs.get(0).getWidthOfBall() / 2, point3.y + colorballs.get(2).getWidthOfBall() / 2, point3.x + colorballs.get(2).getWidthOfBall() / 2, point1.y + colorballs.get(0).getWidthOfBall() / 2, paint); } else { canvas.drawRect(point2.x + colorballs.get(1).getWidthOfBall() / 2, point4.y + colorballs.get(3).getWidthOfBall() / 2, point4.x + colorballs.get(3).getWidthOfBall() / 2, point2.y + colorballs.get(1).getWidthOfBall() / 2, paint); } BitmapDrawable mBitmap; mBitmap = new BitmapDrawable(); // draw the balls on the canvas for (ColorBall ball : colorballs) { canvas.drawBitmap(ball.getBitmap(), ball.getX(), ball.getY(), new Paint()); } } //?????????????????? @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { Log.d("TEST2:","onMeasure() being called."); Log.v("Chart onMeasure w", MeasureSpec.toString(widthMeasureSpec)); Log.v("Chart onMeasure h", MeasureSpec.toString(heightMeasureSpec)); int desiredWidth = getSuggestedMinimumWidth() + getPaddingLeft() + getPaddingRight(); int desiredHeight = getSuggestedMinimumHeight() + getPaddingTop() + getPaddingBottom(); setMeasuredDimension(measureDimension(desiredWidth, widthMeasureSpec), measureDimension(desiredHeight, heightMeasureSpec)); } private int measureDimension(int desiredSize, int measureSpec) { int result; int specMode = MeasureSpec.getMode(measureSpec); int specSize = MeasureSpec.getSize(measureSpec); if (specMode == MeasureSpec.EXACTLY) { result = specSize; } else { result = desiredSize; if (specMode == MeasureSpec.AT_MOST) { result = Math.min(result, specSize); } } if (result < desiredSize){ Log.e("ChartView", "The view is too small, the content might get cut"); } return result; } // events when touching the screen public boolean onTouchEvent(MotionEvent event) { int eventaction = event.getAction(); int X = (int) event.getX(); int Y = (int) event.getY(); switch (eventaction) { case MotionEvent.ACTION_DOWN: // touch down so check if the finger is on // a ball balID = -1; groupId = -1; for (ColorBall ball : colorballs) { // check if inside the bounds of the ball (circle) // get the center for the ball //Utils.logd("Id : " + ball.getID()); //Utils.logd("getX : " + ball.getX() + " getY() : " + ball.getY()); int centerX = ball.getX() + ball.getWidthOfBall(); int centerY = ball.getY() + ball.getHeightOfBall(); paint.setColor(Color.CYAN); // calculate the radius from the touch to the center of the ball double radCircle = Math .sqrt((double) (((centerX - X) * (centerX - X)) + (centerY - Y) * (centerY - Y))); //Utils.logd("X : " + X + " Y : " + Y + " centerX : " + centerX + " CenterY : " + centerY + " radCircle : " + radCircle); if (radCircle < ball.getWidthOfBall()) { balID = ball.getID(); //Utils.logd("Selected ball : " + balID); if (balID == 1 || balID == 3) { groupId = 2; canvas.drawRect(point1.x, point3.y, point3.x, point1.y, paint); } else { groupId = 1; canvas.drawRect(point2.x, point4.y, point4.x, point2.y, paint); } invalidate(); break; } invalidate(); } break; case MotionEvent.ACTION_MOVE: // touch drag with the ball // move the balls the same as the finger if (balID > -1) { //Utils.logd("Moving Ball : " + balID); Log.d("Moving Ball : " ,"" + balID); colorballs.get(balID).setX(X); colorballs.get(balID).setY(Y); paint.setColor(Color.CYAN); if (groupId == 1) { colorballs.get(1).setX(colorballs.get(0).getX()); colorballs.get(1).setY(colorballs.get(2).getY()); colorballs.get(3).setX(colorballs.get(2).getX()); colorballs.get(3).setY(colorballs.get(0).getY()); canvas.drawRect(point1.x, point3.y, point3.x, point1.y, paint); } else { colorballs.get(0).setX(colorballs.get(1).getX()); colorballs.get(0).setY(colorballs.get(3).getY()); colorballs.get(2).setX(colorballs.get(3).getX()); colorballs.get(2).setY(colorballs.get(1).getY()); canvas.drawRect(point2.x, point4.y, point4.x, point2.y, paint); } invalidate(); } break; case MotionEvent.ACTION_UP: // touch drop - just do things here after dropping break; } // redraw the canvas invalidate(); return true; } public void shade_region_between_points() { canvas.drawRect(point1.x, point3.y, point3.x, point1.y, paint); } }

と最後にこれを使用してactivity.xmlでこれを呼び出す:

<事前> <コード> public class exampleActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_example); DrawView dv = new DrawView(getApplicationContext()); }

だから、アクティビティのoncreate()でMyDrawViewを呼び出すと、

<コード> TEST: myDrawView() constructor called. 。しかし、その後、 <コード> TEST: onDraw() method called. ondraw()メソッドは何らかの理由で起動されていません。私は何をすべきですか?

英語

I have to show a resizable rectangle on an acivity.

My xml file:

 <RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/layout" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".exampleActivity">  <ImageView android:id="@+id/office" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/office" android:src="@raw/office" />  <com.lambdahash.sonic.example.draw.DrawView android:id="@+id/drawView" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout> 

Code to display the Rectangle on this activity:

public class DrawView extends View {      Point point1, point3;     Point point2, point4;      /**      * point1 and point 3 are of same group and same as point 2 and point4      */     int groupId = -1;     private ArrayList<ColorBall> colorballs = new ArrayList<ColorBall>();     // array that holds the balls     private int balID = 0;     // variable to know what ball is being dragged     Paint paint;     Canvas canvas;      public DrawView(Context context) {          super(context);         paint = new Paint();         setFocusable(true); // necessary for getting the touch events         canvas = new Canvas();         // this.setWillNotDraw(false); //?          Log.d("TEST:","DrawView() being called.");          // setting the start point for the balls         point1 = new Point();         point1.x = 50;         point1.y = 20;          point2 = new Point();         point2.x = 150;         point2.y = 20;          point3 = new Point();         point3.x = 150;         point3.y = 120;          point4 = new Point();         point4.x = 50;         point4.y = 120;          // declare each ball with the ColorBall class         colorballs.add(new ColorBall(context, R.drawable.gray_circle, point1));         colorballs.add(new ColorBall(context, R.drawable.gray_circle, point2));         colorballs.add(new ColorBall(context, R.drawable.gray_circle, point3));         colorballs.add(new ColorBall(context, R.drawable.gray_circle, point4));      }      public DrawView(Context context, AttributeSet attrs, int defStyle) {         super(context, attrs, defStyle);     }      public DrawView(Context context, AttributeSet attrs) {         super(context, attrs);         paint = new Paint();         setFocusable(true); // necessary for getting the touch events         canvas = new Canvas();         // setting the start point for the balls         point1 = new Point();         point1.x = 50;         point1.y = 20;          point2 = new Point();         point2.x = 150;         point2.y = 20;          point3 = new Point();         point3.x = 150;         point3.y = 120;          point4 = new Point();         point4.x = 50;         point4.y = 120;            // declare each ball with the ColorBall class         colorballs.add(new ColorBall(context, R.drawable.gray_circle, point1));         colorballs.add(new ColorBall(context, R.drawable.gray_circle, point2));         colorballs.add(new ColorBall(context, R.drawable.gray_circle, point3));         colorballs.add(new ColorBall(context, R.drawable.gray_circle, point4));      }      // the method that draws the balls     @Override     protected void onDraw(Canvas canvas) {          Log.d("TEST:","onDraw() being called.");          // canvas.drawColor(0xFFCCCCCC); //if you want another background color          paint.setAntiAlias(true);         paint.setDither(true);         paint.setColor(Color.parseColor("#55000000"));         paint.setStyle(Paint.Style.FILL);         paint.setStrokeJoin(Paint.Join.ROUND);         // mPaint.setStrokeCap(Paint.Cap.ROUND);         paint.setStrokeWidth(5);          canvas.drawPaint(paint);         paint.setColor(Color.parseColor("#55FFFFFF"));          if (groupId == 1) {             canvas.drawRect(point1.x + colorballs.get(0).getWidthOfBall() / 2,                     point3.y + colorballs.get(2).getWidthOfBall() / 2, point3.x                             + colorballs.get(2).getWidthOfBall() / 2, point1.y                             + colorballs.get(0).getWidthOfBall() / 2, paint);         } else {             canvas.drawRect(point2.x + colorballs.get(1).getWidthOfBall() / 2,                     point4.y + colorballs.get(3).getWidthOfBall() / 2, point4.x                             + colorballs.get(3).getWidthOfBall() / 2, point2.y                             + colorballs.get(1).getWidthOfBall() / 2, paint);         }         BitmapDrawable mBitmap;         mBitmap = new BitmapDrawable();          // draw the balls on the canvas         for (ColorBall ball : colorballs) {             canvas.drawBitmap(ball.getBitmap(), ball.getX(), ball.getY(),                     new Paint());         }     }      //??????????????????     @Override     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {           Log.d("TEST2:","onMeasure() being called.");          Log.v("Chart onMeasure w", MeasureSpec.toString(widthMeasureSpec));         Log.v("Chart onMeasure h", MeasureSpec.toString(heightMeasureSpec));          int desiredWidth = getSuggestedMinimumWidth() + getPaddingLeft() + getPaddingRight();         int desiredHeight = getSuggestedMinimumHeight() + getPaddingTop() + getPaddingBottom();          setMeasuredDimension(measureDimension(desiredWidth, widthMeasureSpec),                 measureDimension(desiredHeight, heightMeasureSpec));     }      private int measureDimension(int desiredSize, int measureSpec) {         int result;         int specMode = MeasureSpec.getMode(measureSpec);         int specSize = MeasureSpec.getSize(measureSpec);          if (specMode == MeasureSpec.EXACTLY) {             result = specSize;         } else {             result = desiredSize;             if (specMode == MeasureSpec.AT_MOST) {                 result = Math.min(result, specSize);             }         }          if (result < desiredSize){             Log.e("ChartView", "The view is too small, the content might get cut");         }         return result;     }         // events when touching the screen     public boolean onTouchEvent(MotionEvent event) {         int eventaction = event.getAction();          int X = (int) event.getX();         int Y = (int) event.getY();          switch (eventaction) {              case MotionEvent.ACTION_DOWN: // touch down so check if the finger is on                 // a ball                 balID = -1;                 groupId = -1;                 for (ColorBall ball : colorballs) {                     // check if inside the bounds of the ball (circle)                     // get the center for the ball                     //Utils.logd("Id : " + ball.getID());                     //Utils.logd("getX : " + ball.getX() + " getY() : " + ball.getY());                     int centerX = ball.getX() + ball.getWidthOfBall();                     int centerY = ball.getY() + ball.getHeightOfBall();                     paint.setColor(Color.CYAN);                     // calculate the radius from the touch to the center of the ball                     double radCircle = Math                             .sqrt((double) (((centerX - X) * (centerX - X)) + (centerY - Y)                                     * (centerY - Y)));                      //Utils.logd("X : " + X + " Y : " + Y + " centerX : " + centerX + " CenterY : " + centerY + " radCircle : " + radCircle);                      if (radCircle < ball.getWidthOfBall()) {                          balID = ball.getID();                         //Utils.logd("Selected ball : " + balID);                         if (balID == 1 || balID == 3) {                             groupId = 2;                             canvas.drawRect(point1.x, point3.y, point3.x, point1.y,                                     paint);                         } else {                             groupId = 1;                             canvas.drawRect(point2.x, point4.y, point4.x, point2.y,                                     paint);                         }                         invalidate();                         break;                     }                     invalidate();                 }                  break;              case MotionEvent.ACTION_MOVE: // touch drag with the ball                 // move the balls the same as the finger                 if (balID > -1) {                     //Utils.logd("Moving Ball : " + balID);                       Log.d("Moving Ball : " ,"" + balID);                      colorballs.get(balID).setX(X);                     colorballs.get(balID).setY(Y);                      paint.setColor(Color.CYAN);                      if (groupId == 1) {                         colorballs.get(1).setX(colorballs.get(0).getX());                         colorballs.get(1).setY(colorballs.get(2).getY());                         colorballs.get(3).setX(colorballs.get(2).getX());                         colorballs.get(3).setY(colorballs.get(0).getY());                         canvas.drawRect(point1.x, point3.y, point3.x, point1.y,                                 paint);                     } else {                         colorballs.get(0).setX(colorballs.get(1).getX());                         colorballs.get(0).setY(colorballs.get(3).getY());                         colorballs.get(2).setX(colorballs.get(3).getX());                         colorballs.get(2).setY(colorballs.get(1).getY());                         canvas.drawRect(point2.x, point4.y, point4.x, point2.y,                                 paint);                     }                      invalidate();                 }                  break;              case MotionEvent.ACTION_UP:                 // touch drop - just do things here after dropping                  break;         }         // redraw the canvas         invalidate();         return true;      }      public void shade_region_between_points() {         canvas.drawRect(point1.x, point3.y, point3.x, point1.y, paint);     } } 

And, finally invoking this on the activity.xml using this:

public class exampleActivity extends AppCompatActivity {      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_example);          DrawView dv = new DrawView(getApplicationContext());       } 

So, when I'am invoking the myDrawView in onCreate() in activity, I am getting,

TEST: myDrawView() constructor called.. But, after that I'am not getting TEST: onDraw() method called. the onDraw() method is not getting invoked for some reason.What should I do?

</div
        
       
       

回答リスト

1
 
vote

実際にあなたのUIにMyDrawViewを追加するものは何もありません。投稿したレイアウトにはありません。プログラムでレイアウトに追加されていません。ビューを作成するだけでは表示されません。

 

There's nothing actually adding a MyDrawView to your UI. It isn't in the layout you posted. It isn't being added to the layout programatically. Just creating the view doesn't display it.

</div
 
 
   
   
1
 
vote

は、カスタムビューをレイアウトファイルまたはアクティビティコードに追加しなかったように見えます。 このように追加してみてください。

<事前> <コード> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/layout" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".exampleActivity" > <ImageView android:id="@+id/office" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/office" android:src="@raw/office" /> <your.package.name.MyDrawView android:id="@+id/myAwesomeDrawView" android:layout_width="match_parent" android:layout_height="200dp" /> </RelativeLayout>

それはあなたのアプリに表示されるべきです。

注意、@gabesechan コンテナが幅と高さ0を持つように測定したときにビューをレイアウトしたときに、XMLレイアウトファイルでビューの寸法を指定するか、正しい <コード> onMeasure() 。

まだプログラムで追加したい場合は、

のように、 onCreate() メソッドで実行できます。
 <コード> @Override protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);      final RelativeLayout myAwesomeLayout = findViewById(R.id.your_container_id);     final View myAwesomeView = new View(this);     someViewsetLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));     myAwesomeLayout.addView(myAwesomeView); }   

その大会は、クラス名がJavaの大文字で始まるということに注意してください。

追加の点:

  • <コード> onDraw() にたくさんのオブジェクトを割り当てているようです。 方法、それはメモリ消費量の増加および貧弱なものにつながる可能性がある パフォーマンス、これを回避し、オブジェクトを再利用することをお勧めします。 新しいものを作成する代わりに。
  • カスタムビューのコンストラクタは異なる動作をして重複するコードを含み、コードの重複を避けるために共通の初期化コードを移動することをお勧めしますので、この
  • のようにすることができます。
 <コード>     public class MyDrawView extends View {          // for example only         @ColorInt final int fillColor;          public MyDrawView(final Context context) {             this(context, null);         }          public MyDrawView(final Context context, final AttributeSet attrs) {             this(context, attrs, 0);         }          public MyDrawView(final Context context, final AttributeSet attrs, final int defStyle) {             super(context, attrs, defStyle);              // initialize here, like             fillColor = Color.parseInt("something");         }     }   
 

Looks like you didn't add your custom view neither in your layout file or in your Activity code. Try adding it like this.

<RelativeLayout      xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http://schemas.android.com/apk/res-auto"     xmlns:tools="http://schemas.android.com/tools"     android:id="@+id/layout"     android:layout_width="match_parent"     android:layout_height="match_parent"     tools:context=".exampleActivity" >      <ImageView         android:id="@+id/office"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:contentDescription="@string/office"         android:src="@raw/office"      />      <your.package.name.MyDrawView         android:id="@+id/myAwesomeDrawView"         android:layout_width="match_parent"         android:layout_height="200dp"      /> </RelativeLayout> 

Then it should be displaying in your app.

Note, that as @GabeSechan said, some containers wont lay out the view when it's measuring itself to have width and height of 0. You'll have to either specify your view's dimensions in the xml layout file or provide a correct onMeasure().

If you still want to add it programmatically, then you can do it in the onCreate() method, for example like this:

@Override protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);      final RelativeLayout myAwesomeLayout = findViewById(R.id.your_container_id);     final View myAwesomeView = new View(this);     someViewsetLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));     myAwesomeLayout.addView(myAwesomeView); } 

Please note, that convention is that class names are started with a capital letter in Java.

Some additional points:

  • It seems like you're allocating a lot of objects in your onDraw() method, it may lead to increased memory consumption and poor performance, it's better to avoid this and to try and reuse objects instead of creating new ones.
  • Your custom view constructors behave differently and contain duplicate code, it might be a good idea to move common initialization code to avoid code duplication, you can try doing it like this
    public class MyDrawView extends View {          // for example only         @ColorInt final int fillColor;          public MyDrawView(final Context context) {             this(context, null);         }          public MyDrawView(final Context context, final AttributeSet attrs) {             this(context, attrs, 0);         }          public MyDrawView(final Context context, final AttributeSet attrs, final int defStyle) {             super(context, attrs, defStyle);              // initialize here, like             fillColor = Color.parseInt("something");         }     } 
</div
 
 
       
       
0
 
vote
<事前> <コード> <ImageView android:id="@+id/office" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/office" android:src="@raw/office" />

これはスペルエラーになることができますか?それは@描画/オフィスになるはずですか?

 
<ImageView android:id="@+id/office" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/office" android:src="@raw/office" /> 

Could this be a spelling error? Is that supposed to be @draw/office?

</div
 
 

関連する質問

4  遅く実行されているAndroid描画方法  ( Android drawing method running slow ) 
みんなの挨拶! JavaのC#XNA 4.0からJava Android Devに変換しようとしています。まず、マイクロソフトが彼らのモバイルプラットフォームのためのゲーム開発について本当に素晴らしい仕事をしたと言わなければなりません。それは世界中の20人の...

1  Pythonで立方格子を描く  ( Drawing cubic lattice in python ) 
だから私はビジュアルパッケージを使ってPythonで単純な立方格子を描きたい。 私はすべて同じ色を持っている小さな球を持つ格子を簡単にする方法がありますが、色が交互にしてほしい:NaCl格子を他の色の6つの球に囲む必要がある。 だから私はこれをしました: <事...

0  QT C ++描画とアニメーション  ( Qt c drawing and animation ) 
私はQtへのニュービーです。そして私はこの問題を解決する方法を持っています。 私は道路網を描きたい、それはプログラムの実行を通して静的なままです。この道路ネットワークでは、この道路ネットワーク上で始まる車(簡単な円または長方形で十分である)を描きたい。 ウィジ...

0  PANとPINCHでUiscrollViewのiOS  ( Ios drawing on uiscrollview with pan and pinch ) 
これは私がスタックオーバーフローと Ray Wenderlichチュートリアル私は様々なスニペットを1つのパッケージにまとめたと思いました。 私の問題は、iPhone画面サイズより大きいPDFでフリーハンドを描きたいということでした。したがって、私は追加のサイ...

6  OpenGL ES 2.0シェーダを備えた滑らかなテクスチャ線  ( Smooth textured line with opengl es 2 0 shaders ) 
iOS描画アプリを持っています。現在、図面はOpenGL ES 1.1で実装されています。ベジエ曲線などの線を滑らかにするためにいくつかのアルゴリズムを使用します。そのため、タッチイベントが発生した場合は、(アルゴリズムに基づいて)タッチイベントポイント(ア...

6  WinFormsアプリケーションで充填されたゴムバンド  ( Filled rubber band in winforms application ) 
0.3不透明度で窓の形でゼロ不透明度のゴムバンドを描くことができますか? ( Microsoft 例 更新: マスクのようなものを作動させるためにそのゴムバンドが必要です。 Jingまたは他のスクリーンショットツールを使用する場合は、スクリーンショ...

1  OpenGL:描画線  ( Opengl drawing lines ) 
線を描きたい場合は、2桁のみのGL_LINESプリミティブの純粋な線です。 GLPOLYGONMODEをGL_LINEにする必要がありますか?または描画プリミティブをGL_LINESに設定するのが十分ですか? 編集:現代のOpenGL Technicsを使う...

0  WPFでROC曲線を作るために使用できますか?  ( What can i use to make an roc curve in wpf ) 
いくつかの wpfでroreferneferrer"> Roc Curves をwpfでグラフにしたい。 wpf toolkit を見つけましたが、箱の解決策が表示されません。私が欲しいもの、いくつかの基本グラフタイプだけです。 ROC曲線を構築することは、...

0  iPhone SDK-修正 - 現在の描画コンテキストとしてスーパービューを選択する方法  ( Iphone sdk uigraphics how to select a superview as current drawing context ) 
画像ビューの出身時点から目的地を宛先ポイントまで描画しようとしています。 私の問題は(私がイメージビューから)現在の描画コンテキストとしてスーパービューを設定する方法です。 誰かが助けることができます。 これは私がイメージビューで使っているコードです。 <事前...

9  DrangeImageでパスを使用する方法?  ( How to use path in a drawingimage ) 
私はいくつかのパスを持っていますが、私はdraindImageリソースに変換したいと思うでしょうが、私は何かが足りない必要があります。 すき。 私はこのようなものを取りたい: <事前> <コード> <Path Stroke="DarkGoldenRod" St...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有