drawable中的图片转换成URI的方法

/* 今天在需要使用一些假数据进行展示的时候,用到res/drawable目录下的图片Uri,而这个Uri该如何转换呢?下面就是这Uri的生成方法:先要实例化一个Resources  r;*/

                                        Resources  r =mContext.getResources();
					Uri uri =  Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://"
					    + r.getResourcePackageName(R.drawable.vod_image_default) + "/"
					    + r.getResourceTypeName(R.drawable.vod_image_default) + "/"
					    + r.getResourceEntryName(R.drawable.vod_image_default));


  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现在Android上传本地图片的功能,需要以下步骤: 1. 在布局文件添加一个ImageView和一个Button,用于选择本地图片和上传图片。 ```xml <ImageView android:id="@+id/image_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/default_image" /> <Button android:id="@+id/upload_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Upload Image" /> ``` 2. 在Activity获取ImageView和Button的引用,并为Button添加点击事件。 ```java public class MainActivity extends AppCompatActivity { private ImageView imageView; private Button uploadButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView = findViewById(R.id.image_view); uploadButton = findViewById(R.id.upload_button); uploadButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO: 实现上传图片的逻辑 } }); } } ``` 3. 在点击事件打开系统的文件选择器,选择要上传的图片。 ```java uploadButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 打开系统的文件选择器 Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivityForResult(Intent.createChooser(intent, "Select Picture"), 1); } }); ``` 4. 在Activity重写onActivityResult方法,获取选择的图片URI,并将其显示在ImageView。 ```java @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1 && resultCode == RESULT_OK) { Uri imageUri = data.getData(); imageView.setImageURI(imageUri); } } ``` 5. 在上传图片的逻辑,将选图片文件换为字节数组,并使用HTTP POST请求将其上传到服务器。 ```java uploadButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 打开系统的文件选择器 Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivityForResult(Intent.createChooser(intent, "Select Picture"), 1); } }); @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1 && resultCode == RESULT_OK) { Uri imageUri = data.getData(); imageView.setImageURI(imageUri); try { // 将选图片文件换为字节数组 InputStream inputStream = getContentResolver().openInputStream(imageUri); byte[] bytes = new byte[inputStream.available()]; inputStream.read(bytes); // 使用HTTP POST请求上传图片 URL url = new URL("http://example.com/upload"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setDoOutput(true); connection.setRequestProperty("Content-Type", "image/jpeg"); connection.setRequestProperty("Content-Length", String.valueOf(bytes.length)); connection.getOutputStream().write(bytes); // 处理上传结果 int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { // 上传成功 } else { // 上传失败 } } catch (Exception e) { e.printStackTrace(); } } } ``` 注意:上述代码仅为示例,实际应用需要根据具体情况进行修改和优化。例如,需要处理权限请求、网络连接异常、上传进度等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值