【移動應(yīng)用開發(fā)技術(shù)】如何解決Android微信分享大圖遇到的問題_第1頁
【移動應(yīng)用開發(fā)技術(shù)】如何解決Android微信分享大圖遇到的問題_第2頁
【移動應(yīng)用開發(fā)技術(shù)】如何解決Android微信分享大圖遇到的問題_第3頁
【移動應(yīng)用開發(fā)技術(shù)】如何解決Android微信分享大圖遇到的問題_第4頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

【移動應(yīng)用開發(fā)技術(shù)】如何解決Android微信分享大圖遇到的問題

起因:/upload/information/20200623/125/121243.png分享圖片代碼:public

void

WXsharePic(String

transaction,

final

boolean

isSession,

Bitmap

bitmap)

{

//初始化WXImageObject和WXMediaMessage對象

WXImageObject

imageObject

=

new

WXImageObject(bitmap);

WXMediaMessage

msg

=

new

WXMediaMessage();

msg.mediaObject

=

imageObject;

//設(shè)置縮略圖

Bitmap

scaledBitmap

=

Bitmap.createScaledBitmap(bitmap,

200,

200,

true);

bitmap.recycle();

msg.thumbData

=

getBitmapByte(scaledBitmap);

//構(gòu)造一個Req

SendMessageToWX.Req

req

=

new

SendMessageToWX.Req();

req.transaction

=

transaction

+

Long.toString(System.currentTimeMillis());

req.message

=

msg;

//表示發(fā)送給朋友圈

WXSceneTimeline

表示發(fā)送給朋友

WXSceneSession

req.scene

=

isSession

?

SendMessageToWX.Req.WXSceneSession

:

SendMessageToWX.Req.WXSceneTimeline;

//調(diào)用api接口發(fā)送數(shù)據(jù)到微信

api.sendReq(req);

}解決過程:想法一:/upload/information/20200623/125/121244.png想法二:public

static

byte[]

bitmap2Bytes(Bitmap

bitmap,

int

maxkb)

{

ByteArrayOutputStream

output

=

new

ByteArrayOutputStream();

press(Bitmap.CompressFormat.PNG,

100,

output);

int

options

=

100;

while

(output.toByteArray().length

>

maxkb&&

options

!=

10)

{

output.reset();

//清空output

press(Bitmap.CompressFormat.JPEG,

options,

output);//這里壓縮options%,把壓縮后的數(shù)據(jù)存放到output中

options

-=

10;

}

return

output.toByteArray();

}將壓縮率遞減改為1%,并且maxkb設(shè)置為500KB時,就沒問題了!想法三:而Intent傳值有大小限制,最大只能512KB!解決過程:public

void

WXsharePic(String

transaction,

final

boolean

isSession,

Bitmap

bitmap,

String

path)

{

//初始化WXImageObject和WXMediaMessage對象

WXImageObject

imageObject;

if

(!StringUtil.isBlank(path))

{

imageObject

=

new

WXImageObject();

imageObject.setImagePath(path);

}

else

{

imageObject

=

new

WXImageObject(bitmap);

}

WXMediaMessage

msg

=

new

WXMediaMessage();

msg.mediaObject

=

imageObject;

//設(shè)置縮略圖

Bitmap

scaledBitmap

=

Bitmap.createScaledBitmap(bitmap,

200,

200,

true);

bitmap.recycle();

msg.thumbData

=

getBitmapByte(scaledBitmap);

//構(gòu)造一個Req

SendMessageToWX.Req

req

=

new

SendMessageToWX.Req();

req.transaction

=

transaction

+

Long.toString(System.currentTimeMillis());

req.message

=

msg;

//表示發(fā)送給朋友圈

WXSceneTimeline

表示發(fā)送給朋友

WXSceneSession

req.scene

=

isSession

?

SendMessageToWX.Req.WXSceneSession

:

SendMessageToWX.Req.WXSceneTimeline;

//調(diào)用api接口發(fā)送數(shù)據(jù)到微信

api.sendReq(req);

}private

void

shareToMoment()

{

final

Bitmap

sharePicture

=

getBitmapByView(svShare);

AndPermission.with(this)

.permission(Permission.WRITE_EXTERNAL_STORAGE)

.onGranted(new

Action()

{

@Override

public

void

onAction(List<String>

permissions)

{

String

path

=

saveImageToGallery(sharePicture);

WXsharePic("he"

+

System.currentTimeMillis(),

true,

sharePicture,

path);

}

})

.onDenied(new

Action()

{

@Override

public

void

onAction(@NonNull

List<String>

permissions)

{

Log.e("Activity",

"權(quán)限申請失敗");

}

})

.start();

}public

String

saveImageToGallery(Bitmap

bmp)

{

//

首先保存圖片

String

storePath

=

Environment.getExternalStorageDirectory().getAbsolutePath()

+

File.separator

+

"dearxy";

File

appDir

=

new

File(storePath);

if

(!appDir.exists())

{

appDir.mkdir();

}

String

fileName

=

System.currentTimeMillis()

+

".jpg";

File

file

=

new

File(appDir,

fileName);

try

{

FileOutputStream

fos

=

new

FileOutputStream(file);

//通過io流的方式來壓縮保存圖片

p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論