リンクしたブログ記事を書き、osmdroidのソースを調べましたが、問題の解決策を見つけるためのセットアップとデータベースにあるタイルに関する詳細情報が不足しています。
しかし、いくつかのクラス名を尋ねたので、私はあなたのタイルがどのように進むかをあなたに教えようとします-それからあなたは自分でコードを見ることができますそしてこれがあなたが黒い領域の理由を見つけるのに十分役立つことを願っています
1)[TilesOverlay.java]は、座標(x、y)とズーム率を含むタイルをタイルプロバイダーに要求します。#Line 168
2)[MapTileProviderArray](他のプロバイダーの場合は、そこにあるメソッド "getMapTile"を見つける必要があります)は正しいタイルをロードしようとします#Line 121
3)[MapTileModuleProviderBase]は、特定のタイルプロバイダーにリクエストを送信します-あなたの場合、ファイルアーカイブプロバイダー#Line241を推測します
4)[MapTileFileArchiveProvider]は、mbtilesデータベースからデータへの入力ストリームを取得します。#Line 210&169
5)[MBTilesFileArchive]は、要求されたタイルのデータベースを読み取ります#Line 56
6)[MapTileFileArchiveProvider]は、指定されたtileSource#Line215からビットマップを要求します
7)[BitmapTileSourceBase]は、AndroidクラスのBitmapFactoryを使用してビットマップ# Line130を作成します
8)[MapTileModuleProviderBase]はビットマップ(#Line 210)をプロバイダー[MapTileProviderArray](#Line 135)に渡し、最後に[MapTileProviderBase]はビットマップをキャッシュに追加し、タイルを再描画するためのメッセージを送信します(#Line 108&113)
キャッシュはすべてのタイルソースとプロバイダーのビットマップで機能するため、問題がさらに大きくなることはないと思います。問題がビットマップのキャッシュにある場合、osmdroidシステム全体に透明なタイルはまったくありません。したがって、問題はこれらのステップの間のどこかにあると思います。
これが問題の発見に役立つことを願っています。
あいさつ
PS:私は通常ここに投稿していないので、アカウントを持っておらず、2つのリンクしか提供できません。私が言及したすべてのファイルはここで見つけることができます:osmdroidtrunk