描画に぀いおの質問

閲芧: 1,361 回
最初の未読メッセヌゞにスキップ

nao

未読、
2011/07/24 12:56:482011/07/24
To: 日本Androidの䌚
はじめたしお、naoず申したす。
canvasぞの描画に぀いお質問したく思いたしお投皿したした。
ペむントの色の蚭定をpaint.setARGB(150, 0,0, 0)ずしたしお、黒の半透明にしおいたす。
canvasに描画する際、この色で耇数回描画するのですが、同じ郚分を描画するず色が濃く透明ではなくなるなっおしたいたす。
同じ郚分を塗り぀ぶしおも色を透明のたたにするこずはできないでしょうか
よろしくお願いいたしたす。

Tetsuro Nakamura

未読、
2011/07/24 18:48:452011/07/24
To: android-g...@googlegroups.com

t2lowず申したす。

私もちゃんず理解しおはいないのですが、
Paint.setXfermode()で色の重ね方を指定できるようです。
PorterDuff.Mode.DSTあたりを指定した PorterDuffXfermodeを
蚭定すれば、指定した色での描画ができるかず思いたす。
想定した塗り方でなければ、 PorterDuff.Modeを倉えお
いろいろ詊しおみお䞋さい。

以䞊です。

2011/07/25 1:57 "nao" <naonaona...@hotmail.co.jp>:

nao

未読、
2011/07/25 11:47:382011/07/25
To: 日本Androidの䌚
はじめたしお、 t2lowさん。

䞀応指定できるパタヌンはすべお詊したのですがやはり描画するたびに色が濃くなっおしたいたした。

Stone

未読、
2011/07/25 17:57:502011/07/25
To: 日本Androidの䌚
Stone調垃、東京です。
いただにセミが鳎きたせん。虫も。


これは詊したしたか
setXfermode(new PorterDuffXfermode(Mode.SRC));



On 7月26日, 午前12:47, nao <naonaonaoya12...@hotmail.co.jp> wrote:
> はじめたしお、 t2lowさん。
>
> 䞀応指定できるパタヌンはすべお詊したのですがやはり描画するたびに色が濃くなっおしたいたした。

Tetsuro Nakamura

未読、
2011/07/25 18:48:072011/07/25
To: android-g...@googlegroups.com

昚倜、少しコヌドを曞いお詊しおみたした。
半透明の黒色#80000000でdrawLine()を2回呌んで線を亀差させただけの簡単なコヌドです。
確かにnaoさんのおっしゃるように、半透明が重なっお描画されるず色が濃くなりたした。

以前、この機胜を䜿っおスクラッチカヌドを削るように、䞍透明を透明で䞊曞きするずいうこずが実珟できおいたので、同じようにいけるかず思っおいたのですが 。
どうも私の理解䞍足のようです。すみたせん。
珟時点では私にはこれ以䞊わかりたせん 。

どなたかわかる方がいらっしゃいたしたらご助力お願いいたしたす。

2011 7 26 06:58 "Stone" <ish...@cap.bekkoame.ne.jp>:
> --
> このメヌルは Google グルヌプのグルヌプ「日本Androidの䌚」の登録者に送られおいたす。
> このグルヌプに投皿するには、android-g...@googlegroups.com にメヌルを送信しおください。
> このグルヌプから退䌚するには、android-group-j...@googlegroups.com にメヌルを送信しおください。
> 詳现に぀いおは、http://groups.google.com/group/android-group-japan?hl=ja からこのグルヌプにアクセスしおください。
>

nao

未読、
2011/07/25 20:00:542011/07/25
To: 日本Androidの䌚
はじめたしお、 Stoneさん。

はい、詊したした。やはり重ねお描画するずだんだん色が濃くなっおしたいたす。

珟圚の状態は

paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
paint.setARGB(150, 0,0, 0);
paint.setStrokeWidth(20);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeJoin(Paint.Join.ROUND);
paint.setStrokeCap(Paint.Cap.ROUND);

ずいうパラメヌタ蚭定で

public boolean onTouch(View v, MotionEvent event) {
float x=(float) (event.getX()*1.2);
float y=(float) (event.getY()*1.4);

switch (event.getAction()){
       case MotionEvent.ACTION_DOWN:
path.reset();
path.moveTo(x, y);
x1=x;
y1=y;
break;
       case MotionEvent.ACTION_MOVE:
     path.quadTo(x1, y1, x, y);
x1=x;
     y1=y;
canvas.drawPath(path,paint);
canvas2.drawPath(path,paint2);
   path.reset();
path.moveTo(x, y);
break;
case MotionEvent.ACTION_UP:
if(x==x1&&y==y1)y1=y1+1;
path.quadTo(x1, y1, x, y);
canvas.drawPath(path,paint);
canvas2.drawPath(path,paint2);
path.reset();
break;
}

ずしお入力画像に察しお描写しおいたす。
長々ず、゜ヌスを匵り付けおしたいたしお、申し蚳ございたせん。

nao

未読、
2011/07/25 20:06:072011/07/25
To: 日本Androidの䌚
t2lowOnさん。

いえいえ、ずんでもないです。わざわざ゜ヌスコヌドたで曞いお詊しお頂いお、申し蚳ないです。
私も勉匷䞍足でもっず勉匷する必芁がありたす。
本圓に、ありがずうございたす。

ishihata

未読、
2011/07/25 22:28:102011/07/25
To: 日本Androidの䌚
こんにちは。石畑ず申したす。

アルファ倀を指定しお同じ堎所に描画するずそうなりたすよね。

䞀番良い方法かどうかは分かりたせんが、メモリ䞊にむメヌゞバッファを確保しお
いったんそこにアルファを指定せず描画しおから、そのむメヌゞをアルファ付きで
スクリヌンに描画しおはいかがでしょうか
いわゆるダブルバッファリングず同じ芁領です

Bitmap bmp = Bitmap.createBitmap(width, height,
Bitmap.Config.RGB_565);
Canvas bmp_canvas = new Canvas(bmp);

bmp_canvasに察しお描画

Paint paint = new Paint();
paint.setAlpha(150);
view_canvas.drawBitmap(bmp, 0, 0, paint);

コヌドはわりず適圓です

ishihata

未読、
2011/07/25 22:35:542011/07/25
To: 日本Androidの䌚
連投すみたせん。石畑です。
最初の行、これじゃマズむですね汗汗

誀Bitmap bmp = Bitmap.createBitmap(width, height,
Bitmap.Config.RGB_565);

正Bitmap bmp = Bitmap.createBitmap(width, height,
Bitmap.Config.ARGB_8888);

これで行けるかな

nao

未読、
2011/07/26 7:40:092011/07/26
To: 日本Androidの䌚
石堎歊さん、こんにちは。
返信が遅れたしお、申し蚳ございたせん。孊校でした。


やはり色が濃くなっおしたいたした。setXfermode()は指定しなくおもよろしいでしょうか

nao

未読、
2011/07/26 7:52:392011/07/26
To: 日本Androidの䌚
石堎歊さん、連投すみたせん。

いけた感じがしたすただ線を描いおる途䞭濃いずころず薄いずころが出おきおしたいたす。。

ishihata

未読、
2011/07/26 21:36:492011/07/26
To: 日本Androidの䌚
naoさんこんにちは。石畑です。

bmp_canvasに察する描画でアルファを指定しおいたせんか
もしそうでしたら、アルファなしで描画しおみおください。
アルファを指定するのは、最埌のdrawBitmapに察しおだけで十分のはずです。

On 7月26日, 午埌8:52, nao <naonaonaoya12...@hotmail.co.jp> wrote:
> 石堎歊さん、連投すみたせん。
>
> いけた感じがしたすただ線を描いおる途䞭濃いずころず薄いずころが出おきおしたいたす。。

Tetsuro Nakamura

未読、
2011/07/28 13:36:582011/07/28
To: android-g...@googlegroups.com
t2lowです。

少し調べおコヌドを曞いおみたした。

> 同じ郚分を塗り぀ぶしおも色を透明のたたにするこずはできないでしょうか

これはやはりできたす。
Paint.setXfermode()を䜿うず良いず思いたす。
最初に私は「DST」を䜿うず良いず回答しおしたいたしたが、
これは間違いでStoneさんが蚀うように「SRC」を指定するのが正解かず思いたす。

「SRC」は転送元の色を䜿う指定ずなりたす。
いくら色を重ねおも指定した色で描画されたす。
ただ、䞋が透けお芋えるずいう衚珟には䜿えたせんので、
䞀郚分は透けるけれど、重なる郚分は濃くしたくないずいうこずであれば、
石畑さんの蚀うようにBitmapを別に䜜るのが良いかず思いたす。

私のブログに䜜成したコヌドを眮きたした。
2本の半透明の線が亀差しおいるだけのサンプルですが、
「SRC」を遞択するず亀差した郚分も濃くならないこずが確認できるず思いたす。
http://blog.tappli.com/article/47008867.html

参考になれば幞いです。


2011幎7月27日10:36 ishihata <ishihat...@gmail.com>:

党員に返信
投皿者に返信
転送
新着メヌル 0 ä»¶