0

PHPサーバーで見つかったいくつかの画像をアプリに送信しようとしています。画像は 9 つのパッチ .png ファイルです。そのために、私のサーバーでは base64 でエンコードしています。

$img = fread(fopen($filepath, "r"), filesize($filepath));
$bin_image = base64_encode($img);

その後、json としてラップしてアプリに送信します。

echo json_encode($response);

私のAndroidアプリでは、応答されたjsonから画像を取得しています:

public ServerMsg(JSONObject response, ServerResponseTags responseTag) throws JSONException {
    ...
    String image_str = response.getString(IMAGE);
    byte[] imageAsBytes = Base64.decode(image_str.getBytes(), Base64.DEFAULT);
    image = BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length);
    ...
}

問題は、必要に応じて画像が 9 パッチの png ファイルとして表示されないことです。ビットマップ画像をpng 9パッチファイルに変換する必要があることは知っていますが、方法がわかりません...何か提案はありますか?

4

1 に答える 1

0

私はこの投稿で解決策を見つけました:実行時にNinePatch / NinePatchDrawableを作成し、 Brian Griffeyクラスを使用してビットマップをオンザフライで9つのパッチに非常に簡単に変換しました...

于 2013-08-23T21:07:34.097 に答える