700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android仿微信上传图片发朋友圈

Android仿微信上传图片发朋友圈

时间:2024-02-18 11:18:02

相关推荐

Android仿微信上传图片发朋友圈

添加依赖

implementation 'com.github.lovetuzitong:MultiImageSelector:1.2'

权限

<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.CAMERA" /><!-- 允许程序设置内置sd卡的写权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!-- 允许程序访问WiFi网络信息 --><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><!-- 允许程序读写手机状态和身份 --><uses-permission android:name="android.permission.READ_PHONE_STATE" /><!-- 允许程序访问CellID或WiFi热点来获取粗略的位置 --><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

application下添加配置(不用改)

<activityandroid:configChanges="orientation|screenSize"android:name="me.nereo.multi_image_selector.MultiImageSelectorActivity" />

主页面(可以走MVP逻辑自己写一下吧)

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Intent intent = new Intent(this, MultiImageSelectorActivity.class);intent.putExtra(MultiImageSelectorActivity.EXTRA_SHOW_CAMERA, true);intent.putExtra(MultiImageSelectorActivity.EXTRA_SELECT_COUNT, 9);intent.putExtra(MultiImageSelectorActivity.EXTRA_SELECT_MODE, MultiImageSelectorActivity.MODE_MULTI);startActivityForResult(intent, 100);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == 100) {if (resultCode == RESULT_OK) {// Get the result list of select image pathsList<String> path = data.getStringArrayListExtra(MultiImageSelectorActivity.EXTRA_RESULT);Map<String, String> map = new HashMap<>();map.put("commodityId", "1");map.put("content", "this is test");List<File> fileList = new ArrayList<>();for(String str : path) {File file = new File(str);fileList.add(file);}RetrofitUtil.getInstance().postMoreImage("请求地址", map, fileList, new RetrofitUtil.ICallBack() {@Overridepublic void successData(String result) {Log.i("dj", "setSuccess is " + result);}@Overridepublic void failureData(String error) {Log.i("dj", "SetField is " + error);}});}}}}

网络轻轻封装接口里

@POST@MultipartObservable<ResponseBody> postMoreImage(@Url String url//接口地址, @QueryMap Map<String, String> map //入参数, @Part MultipartBody.Part[] parts);//图片地址

网络轻轻封装类里

//多图片上传public void postMoreImage(String url, Map<String, String> params, List<File> list, ICallBack callBack) {MultipartBody.Part[] parts = new MultipartBody.Part[list.size()];int index = 0;for (File file : list) {RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);MultipartBody.Part filePart = MultipartBody.Part.createFormData("image", file.getName(), requestBody);parts[index] = filePart;index++;}mObservedApis.postMoreImage(url, params, parts).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(getObserver(callBack));}

Retrofit+RxJava简单使用(GET、POST):网络封装类简单使用

原git地址:MultiImageSelector

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。