私は単純なAndroid専用アプリを使用していますmyView.toImage()
期待どおり、これは blob を返しています。
次に、このブロブを base64 にエンコードし、デコードされた文字列を にロードしてアプリでテスト デコードするとImageView
、画像が完全にレンダリングされます。
しかし、php でこの文字列をデコードする場合、base64 文字列には 2 つの問題があります。まず、文字列の長さが常に 4 の倍数であるとは限りません。つまり、パディングが追加されていないことです。次に、手動でパディングを追加すると、画像が常に空白になります。
ボタンオブジェクトで同じコードを使用しても完全に機能しますが、これtoImage()
は Ti.View オブジェクトでメソッドを使用した場合にのみ発生するようです
作業コード (適切な base64 文字列を生成)
myButton.toImage(toImageComplete);
function toImageComplete(blob){
Ti.API.info("To image complete" + blob);
var sigBase64 = Ti.Utils.base64encode(blob);
Ti.API.info(sigBase64);
}
動作しないコード (不適切な base64 文字列を生成)。唯一の変更点は、toImage を呼び出しているオブジェクトが Ti.UI.Button ではなく Ti.UI.View のインスタンスになったことです。
myView.toImage(toImageComplete);
function toImageComplete(blob){
Ti.API.info("To image complete" + blob);
var sigBase64 = Ti.Utils.base64encode(blob);
Ti.API.info(sigBase64);
}
Appcelerator Studio 4.6 SDK 5.3.0GA Android タブレットおよび Genymotion シミュレーターへのコンパイル