どのようにアンドロイドでフラッドフィルアルゴリズムを実装するのですか?コードはc言語で書かれています。アンドロイドのアルゴリズムを実装しています。オープンソースコードがありますか、ウェブサイトのチュートリアルリンクアンドロイドでflood-fillアルゴリズムを実装する方法は?
1
A
答えて
0
フラッドフィルアルゴリズム非常に単純な再帰的なものです。
//Initialize i and j to the place to start
floodFill(int arr[][], target_color, replace_color)
{
if(arr[i][j] == replace_color)
return;
replace(target_color, replace_color);
floodFill(int[i+1][j], target_color, replace_color);
floodFill(int[i][j+1], target_color, replace_color);
floodFill(int[i-1][j], target_color, replace_color);
floodFill(int[i][j-1], target_color, replace_color);
}
フラッドを使用してキューを埋める。フライングフィルにはasynctaskを使用します。
パラメータ
- ユーザタッチ(X、Y cordinates)の使用は、
カラー交換するにタッチピクセルの
- カラー
- ポイントを充填するbitamp。
public class FloodFill { public void floodFill(Bitmap image, Point node, int targetColor, int replacementColor) { int width = image.getWidth(); int height = image.getHeight(); int target = targetColor; int replacement = replacementColor; if (target != replacement) { Queue<Point> queue = new LinkedList<Point>(); do { int x = node.x; int y = node.y; while (x > 0 && image.getPixel(x - 1, y) == target) { x--; } boolean spanUp = false; boolean spanDown = false; while (x < width && image.getPixel(x, y) == target) { image.setPixel(x, y, replacement); if (!spanUp && y > 0 && image.getPixel(x, y - 1) == target) { queue.add(new Point(x, y - 1)); spanUp = true; } else if (spanUp && y > 0 && image.getPixel(x, y - 1) != target) { spanUp = false; } if (!spanDown && y < height - 1 && image.getPixel(x, y + 1) == target) { queue.add(new Point(x, y + 1)); spanDown = true; } else if (spanDown && y < height - 1 && image.getPixel(x, y + 1) != target) { spanDown = false; } x++; } } while ((node = queue.poll()) != null); } } }
+0
私はアンドロイドプログラムで実装する必要がありますどのような例のlittlebitですか? –
+3
私はいくつかの再帰の後にStackOverflowErrorを期待したい;)より良い非再帰的なアルゴでしょう。 –
関連する問題
- 1. 停止FLOODFILLアルゴリズム
- 2. アンドロイドでスクロールリスナーを実装する方法
- 3. アンドロイドでPBAPを実装する方法
- 4. AO *アルゴリズムの実装方法は?
- 5. アンドロイド - ロギングを実装する方法
- 6. ns3でGPSRアルゴリズムを実装する方法は?
- 7. J2MEでBlowfishアルゴリズムを実装する方法は?
- 8. socket.ioを使ってアンドロイドでインスタントメッセージングを実装する方法は?
- 9. 検索アルゴリズムの実装方法
- 10. Pentago AIアルゴリズムの実装方法
- 11. アンドロイドでジャイロセンサーを実装する方法は?
- 12. ドラッグディストーションイメージフィルタをアンドロイドで実装する方法は?
- 13. アンドロイドでC2DMを実装する方法は?
- 14. アンドロイドのオプション経由で共有を実装する方法は?
- 15. 私はアンドロイドでライブストリーミングを実装する方法
- 16. アンドロイドでドラッグ&ドロップを実装する方法は?
- 17. アンドロイドでツリー(タッチグラフ)を実装する方法は?
- 18. アンドロイドでツールバーの水平スクロールを実装する方法は?
- 19. アンドロイドでインスタントライブアップデートを実装する方法は?
- 20. アンドロイドのリスト間でドラッグ&ドロップを実装する方法は?
- 21. アンドロイドでプレイスピッカーを実装する方法は?
- 22. ハスケルでDijkstraアルゴリズムを実装する方法
- 23. アンドロイドの実装方法ツールバー戻るボタン
- 24. アンドロイドにアプリロッカーを実装する方法は?
- 25. アンドロイド用のカスタムデバイス写真ギャラリーを実装する方法は?
- 26. イメージギャラリーをアンドロイドのGridviewに実装する方法は?
- 27. 推奨のMahoutスパーク類似アルゴリズムを実装する方法
- 28. 私の実装はfloodfillよりも遅いのはなぜですか?
- 29. アンドロイドで多言語サポートを実装する方法
- 30. React Nativeでアンドロイドのプッシュ通知を実装する方法
詳細を教えてください。 – PearsonArtPhoto
私はアンドロイドの白いイメージビューを持っています。このalgorthim'Flood-fill "を使用して色を塗りつぶす –
ndkはAndroidでcを使用するために使用できますhttp://developer.android.com/sdk/ndk/index.html –