タグ付けされた質問 「android-canvas」

Android Java Canvas(android.graphics.Canvas)

10
キャンバス上のAndroidセンターのテキスト
以下のコードを使用してテキストを表示しようとしています。問題は、テキストが水平方向の中央に配置されていないことです。の座標をdrawText設定すると、テキストの下部がこの位置に設定されます。テキストが水平方向にも中央揃えになるようにテキストを描画してください。 これは私の問題をさらに表示するための画像です: @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); //canvas.drawRGB(2, 2, 200); Paint textPaint = new Paint(); textPaint.setARGB(200, 254, 0, 0); textPaint.setTextAlign(Align.CENTER); textPaint.setTypeface(font); textPaint.setTextSize(300); canvas.drawText("Hello", canvas.getWidth()/2, canvas.getHeight()/2 , textPaint); }

8
Canvas(Android)に描画されるテキストの高さの測定
テキストの高さを測定する簡単な方法はありますか?私が現在行っている方法は、ペイントを使用しmeasureText()て幅を取得し、試行錯誤で値を見つけておおよその高さを取得することです。私もいじくり回してきましたFontMetricsが、これらはすべておかしな近似方法のようです。 私はさまざまな解像度に合わせて物事をスケーリングしようとしています。私はそれを行うことができますが、相対サイズを決定するための多くの計算を含む信じられないほど冗長なコードになってしまいます。私はそれが嫌いです!もっと良い方法があるはずです。


16
キャンバスに複数行のテキストを描画する
うまくいけば、簡単な質問には、私は、私はカスタムに複数行のテキストを書きたいのですが...任意の例を見つけることができないようView経由してCanvas、そして中にonDraw()私が持っています: ... String text = "This is\nmulti-line\ntext"; canvas.drawText(text, 100, 100, mTextPaint); ... これにより改行が発生することを期待していましたが、代わりに不可解な文字\nが表示されます。 どんなポインタでも大歓迎です。 ポール

3
CanvasとSurfaceの概念を理解する
Androidで使用される/ / システムSurfaceView全体への描画プロセスを理解するのに苦労しています。SurfaceCanvasBitmap 私は、android-developersサイトで見つけたすべての記事とAPIドキュメントページ、androidグラフィックのいくつかのチュートリアル、LunarLanderソースコード、およびこの質問を読みました。 これらのステートメントのうち、どれが正しいか、どちらが正しくないか、そしてその理由を教えてください。 CanvasそれにBitmap接続されています。SurfaceそれにCanvas接続されています。 Viewウィンドウのすべてが同じSurfaceを共有するため、同じを共有しCanvasます。 SurfaceViewのサブクラスでViewあり、他ViewののサブクラスやViewそれ自体とは異なり、独自Surfaceに描画する必要があります。 また、もう1つ質問があります。 SurfaceすでにCanvasビットマップを使用した高レベルの操作が存在するのに、なぜクラスが必要なのですか。できるCanvas仕事をSurfaceするのに適さない状況の例を挙げてください。

6
指でキャンバスに描く、Android
指でキャンバスに描画するプロジェクトを構築する必要があります。 指のタッチイベントとモーションイベントを取得し、そこから描画します。 誰でも私にプロジェクトを始める方法をアドバイスできます、 このようなことをするのに最適なコンポーネントは何ですか?


7
Androidキャンバス描画長方形
etc.で空の長方形を描画する方法。borderWidth= 3とborderColor = blackと長方形内の部分にはコンテンツも色もありません。Canvasで使用する関数 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); それは長方形を描き、それを黒色で塗りつぶしますが、私はこの画像のように周りに「枠」を付けたいだけです:


18
Android、キャンバス:surfaceViewにあるキャンバス(=ビットマップ)をクリア(コンテンツを削除)するにはどうすればよいですか?
単純なゲームを作成するために、次のようなビットマップでキャンバスを描画するテンプレートを使用しました。 private void doDraw(Canvas canvas) { for (int i=0;i<8;i++) for (int j=0;j<9;j++) for (int k=0;k<7;k++) { canvas.drawBitmap(mBits[allBits[i][j][k]], i*50 -k*7, j*50 -k*7, null); } } (キャンバスは "run()"で定義されています/ SurfaceViewはGameThreadにあります。) 最初の質問は、新しいレイアウトでキャンバス全体をクリア(または再描画)する方法です。 次に、画面の一部のみを更新するにはどうすればよいですか? // This is the routine that calls "doDraw": public void run() { while (mRun) { Canvas c = null; try { …

2
Android Canvas.drawText
ビューがあります。onDraw(Canvascanvas)メソッドのCanvasオブジェクトを使用して描画しています。私のコードは: Paint paint = new Paint(); paint.setColor(Color.WHITE); paint.setStyle(Style.FILL); canvas.drawPaint(paint); paint.setColor(android.R.color.black); paint.setTextSize(20); canvas.drawText("Some Text", 10, 25, paint); 問題は、テキストが背景に表示されないことです。何が間違っているのでしょうか。canvas.drawPaint(paint)とpaint.setColor(android.R.color.black)を削除すると、画面にテキストが表示されます。

8
アンドロイドキャンバスで塗りつぶされた三角形を描く方法は?
だから私は私のdrawメソッドで以下のコードを使用してAndroidマップでこの三角形を描いています: paint.setARGB(255, 153, 29, 29); paint.setStyle(Paint.Style.FILL_AND_STROKE); paint.setAntiAlias(true); Path path = new Path(); path.moveTo(point1_returned.x, point1_returned.y); path.lineTo(point2_returned.x, point2_returned.y); path.moveTo(point2_returned.x, point2_returned.y); path.lineTo(point3_returned.x, point3_returned.y); path.moveTo(point3_returned.x, point3_returned.y); path.lineTo(point1_returned.x, point1_returned.y); path.close(); canvas.drawPath(path, paint); pointX_returnedは、フィールドから取得した座標です。それらは基本的に緯度と経度です。結果は素敵な三角形になりますが、インサイダーは空なので、マップを見ることができます。どういうわけかそれを埋める方法はありますか?

5
Androidの16進色は8桁の場合があります。どうやって?#FFFFFFと#FFFFFF00の違いは何ですか
Androidでのカラーリングが#FF191919として行われている例を見たことがあります。私は8桁の16進数を意味します。ただし、6桁の数字にする必要があります。それらはどのように関連していますか?必要に応じて、6桁の数値を8桁の数値に変換します。どうやるか?#424242を8桁の数字のカラーリングに変換するという意味ですか?詳細を教えてください。お手数をおかけしますが、よろしくお願いいたします。

1
Androidの回転テキスト:dynamiclayout.draw(canvas)を使用していますが、パスに沿ってアニメーション化せず、canvas.drawTextOnPath(dynamiclayout)を使用できません
回転するテキストウィジェットを表示するために、https://github.com/mdg-iitr/RotatingTextの独自バージョンを使用しています。このGitHubにはビデオがあり、アニメーションを見ることができます。アイデアは、単語の行を設定することです。行は行ごとに表示されます。行全体が回転します(その単語も回転します)。後者の回転アニメーションが終了すると、前の行の後に行が表示されます。 私の問題 DynamicLayoutテキストの行を表示するにはaを使用します。注意:行は回転する必要があります。 私の問題は次のとおりです。明らかに、メソッドを使用できませんcanvas.drawTextOnPath(dynamicLayoutObject)。だから私がすることは:dynamicLayoutObjec.draw(canvas);です。しかし、その時のアニメーションはありません。実際、テキスト(それDynamicLayoutを含むテキスト)は回転する必要があります。 期待される結果 DynamicLayout(実際には、そのテキストが)(回転)をアニメ化する必要があります。ローテーションは、このSO質問(https://github.com/mdg-iitr/RotatingText)の冒頭にあるGithubの元のリポジトリの図で確認できます。 私の質問 DynamicLayoutパス(またはテキスト)をパスに沿って回転させる方法がわかりません。 最小限のテスト可能な例 オリジナルのRotatingTextライブラリを約8か月前に変更しました。それを簡素化するために(クラスが少なく、メソッドが少なく、未使用のメソッドがないなど)。実際、私は2つのクラスしか持っていません。 RotatingTextSwitcher、これはXMLウィジェットです そしてRotatable、回転する文字列の配列が含まれています。 RotatingTextSwitcherテストするためのXMLウィジェットを含む.XMLレイアウト A Fragment、以前にmentionnedレイアウトを膨張各回転行の単語を設定し、それらを示します。 これをテストするには、以下に示すフラグメントを示すアクティビティを作成します。次に、上記のその他のソースを使用します。 回転可能なクラス import android.graphics.Path; import android.view.animation.Interpolator; public class Rotatable { private final String[] text; private final int update_duration; private int animation_duration; private Path path_in, path_out; private int currentWordNumber; private Interpolator interpolator; public Rotatable(int update_duration, int …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.