0

私のプロジェクトでは、画像を表示する必要があります。データベースに画像名があり、それらの画像を描画可能なフォルダーに保持する必要があります。しかし、これらの画像をドローアブル フォルダーに保存する前は、画像名に特殊記号や大文字などが含まれていました。そのため、それらの画像をドローアブル フォルダーにコピーしようとすると、それらの特殊文字やスペースがサポートされません。したがって、問題ではない画像名を変更する必要があります。しかし、私の問題は、画像名を変更すると、データベース内の名前も変更する必要があることです。 私の画像は800以上あります。これに対する解決策はありますか、それとも手動ですべてを変更することが唯一の解決策ですか? この問題の再評価を手伝ってください。

前もって感謝します

4

3 に答える 3

1

描画可能なリソース(またはその他のXMLリソース)は大文字をサポートしていません。画像をSDカード、ウェブサーバー、またはアセットフォルダに保存する必要があります。

正直なところ、Drawableフォルダに800枚の画像を保存するのは非常に悪い考えのようです。同様に、をAssetsフォルダーに保存すると、アプリケーションのサイズが非常に大きくなる可能性があります。画像のサイズが非常に小さい場合を除いて、ユーザーがアプリケーションを最初にインストールして実行した後で、WebサーバーからSDカードに画像をダウンロードすることをお勧めします。これにより、.apkファイルが小さく保たれます。

于 2012-05-31T12:57:52.820 に答える
1

res 内の画像とデータベース内の画像の間のリンクを保持するための適切なアルゴリズムについて考える必要があります。

例えば

DB NAME: My_Image_Number_3_.jpg -> RES NAME: my_image_number_3.jpg この単純なケースでは、変換は toLoweCase のみです。

于 2012-05-31T12:56:07.777 に答える
0

これは、最近のプロジェクトで Android 用の 1000 個を超えるリソースの名前を変更するために使用した「クイック アンド ダーティ」C# アルゴリズムです。プロジェクト フォルダー内の各ファイルを繰り返し処理し、ファイル名ごとにこのメソッドを呼び出して名前を変更しました。これはコードの「捨てる」部分なので、文字列ビルダーなどを使用することは気にしませんでした。

private String formatName(String name) 
    {
        String result = name.ToLower();

        result = result.Replace("?", "");
        result = result.Replace("'", "");
        result = result.Replace("`", "");
        result = result.Replace(" ", "_");
        result = result.Replace("-", "_");

        if (Char.IsDigit(result.ToCharArray()[0])){
            result = "num" + result;
        }

        return result;
    }

SQL クエリで同じ文字列置換を実行して、DB を更新できます。

于 2012-05-31T13:10:24.250 に答える