2012-02-13 29 views
1

私は描画アプリの消しゴム機能を実装するために何か夕方を探していました。最も一般的な答えは、単に背景色や画像をペイントすることですが、私は複数のレイヤー(Gimp/Photoshopスタイル)を実装しているので、このソリューションは私のアプリケーションでは機能しません。Androidで描画アプリの消しゴムを実装する方法

ユーザーは、好きなだけ多くのレイヤーで提供されるブラシツールを使って線を描くことができます(図面ビューのonDrawメソッドは、レイヤー0 ...レイヤーXを重ねて描画します)。次に、消しゴムツールを選択すると、トレースする現在のレイヤの任意の領域が透明になるはずです。

私は適切なクラス/機能が組み込まれていないと思われます。私はそれを自分で書く方法がわかりません。私は

Paint paint = new Paint(); 
paint.setAlpha(0); 

ような何かをし、その後に描画することPaintオブジェクトを使用しようとしましたが、それは唯一の「目に見えない」行を描画します。

私も

paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); 

を使用しようとしましたが、それは普通と効果なしとして描くように見えました。私はおそらくそれを誤って使用していますが、Androidのマニュアルには、それが何をするのかについての明確な説明は含まれていません。ビットマップの変更に関するいくつかの例でそれを見たことがあります。

私は必要に応じてコードを提供することができますが、私は自分の問題を解決するために役立つだろうか分かりません。私がGoogleで成功していないため、正しい方向を指し示すことが最大の助けになるでしょう。

答えて

2

あなたは、消しゴム機能の実装を見つける新しいキャンバスを作成し、ブラシの機能と機能を保存し、このリンク上ですることができます

create android drawing interface

それは使用してAndroid上で描画アプリを作るために非常に良いチュートリアルを持っていますモーションイベント。

+0

前のデモコードは使用できなくなり、このリンクは他のものよりも良いチュートリアルでした、私はこれを受け入れられた答えに変えています。 – Robert

2

はこのデモを参照してください:FingerPaint.java

あなたはペイント用の消しゴムを実装する方法を知るようになります。

お楽しみください。 :)

+0

申し訳ありませんが、私はあなたの答えを長続きしないままにしておきましたが、私はとても落ち込んで、私のアプリのこの部分に大きな問題を抱えていました。私は今問題を解決しました。あなたが指摘したリンクから私の解決策を引き出しました。私は実際にあなたがそれを投稿する前にそれを見ていましたが、彼らの仕事がなぜ働いたのかわかりませんでした。私をもう一度見せてくれてありがとう。 – Robert

+0

リンクが壊れています。 – Gunaseelan

+0

@Gunaseelan私はなぜそのリンクが壊れているのかわかりません。これを参照することができます:http://docs.eoeandroid.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/FingerPaint.html –

関連する問題