图片显示:

 RequestOptions options = new RequestOptions().centerCrop().placeholder(R.drawable.abc_vector_test).error(R.drawable.ic_launcher_background).priority(Priority.HIGH).diskCacheStrategy(DiskCacheStrategy.NONE);
//用glide或者picasso都可以,用glide的时候需要申请requestopteins       Glide.with(mContext).load("https://alifei04.cfp.cn/creative/vcg/veer/1600water/veer-303764513.jpg").apply(options).into(imageView);
Picasso.with(mContext).load("https://alifei04.cfp.cn/creative/vcg/veer/1600water/veer-303764513.jpg").resize(300, 300).into(imageView);

目录:

MainActivity

package com.example.showpicture;import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;import com.example.showpicture.showLocalPicture.ShowLocalPictureFragment;
import com.example.showpicture.showNetWorkPicture.ShowNetWorkPictureFragment;public class MainActivity extends AppCompatActivity implements View.OnClickListener {private static final String TAG = MainActivity.class.getSimpleName();private Button btnLocal;private Button btnNet;private FragmentManager fragmentManager;private FragmentTransaction transaction;private Fragment fragment;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();initFragment();}private void initView() {btnLocal = findViewById(R.id.btn_local);btnNet = findViewById(R.id.btn_net);btnLocal.setOnClickListener(this::onClick);btnNet.setOnClickListener(this::onClick);}private void initFragment() {fragmentManager = getSupportFragmentManager();}@Overridepublic void onClick(View view) {switch (view.getId()){case R.id.btn_local:Log.d(TAG, "onClick() btn_local"+fragment);if (fragment!=null){transaction.remove(fragment);}transaction = fragmentManager.beginTransaction();fragment  = new ShowLocalPictureFragment();transaction.add(R.id.fragment,fragment);transaction.commit();break;case R.id.btn_net:Log.d(TAG, "onClick() btn_net"+fragment);if (fragment!=null){transaction.remove(fragment);}transaction = fragmentManager.beginTransaction();fragment = new ShowNetWorkPictureFragment();transaction.add(R.id.fragment,fragment);transaction.commit();break;}}
}

xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:id="@+id/main_activity"android:orientation="vertical"><Buttonandroid:id="@+id/btn_local"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="100px"android:text="local"/><Buttonandroid:id="@+id/btn_net"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_marginRight="100px"android:text="net"/><FrameLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/fragment"android:layout_below="@+id/btn_local"></FrameLayout>
</RelativeLayout>

AndroidManifest.xml权限

 <!--在SDCard中创建与删除文件权限  --><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"tools:ignore="ProtectedPermissions" /><!-- 往SDCard写入数据权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><!--  从SDCard读取数据权限 --><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.INTERNET"/>

build.gradle:

显示网络图片需要加载的jar包,picasso或者glide都可以

    implementation 'com.squareup.picasso:picasso:2.5.2'implementation 'com.github.bumptech.glide:glide:4.8.0'annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'

一、本地图片+recyclerView

fragment:

package com.example.showpicture.showLocalPicture;import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;import com.example.showpicture.R;
import com.example.showpicture.showLocalPicture.adapter.RecyclerViewAdapter;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;public class ShowLocalPictureFragment extends Fragment {private static final String TAG = ShowLocalPictureFragment.class.getSimpleName();private Context mContext;private RecyclerView recyclerView;private RecyclerViewAdapter adapter;private ImageView imageView;@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {return inflater.inflate(R.layout.fragment_local,container,false);}@Overridepublic void onStart() {super.onStart();mContext = getContext();checkNeedPermissions();initView();}private void initView() {List<String> imgList = new ArrayList<>();LinearLayoutManager linearLayoutManager = new LinearLayoutManager(mContext,LinearLayoutManager.VERTICAL,false);recyclerView = getView().findViewById(R.id.recyclerView);recyclerView.setLayoutManager(linearLayoutManager);recyclerView.setLayoutManager(new GridLayoutManager(mContext,4));File file = new File(Environment.getExternalStorageDirectory()+"/textPic");Log.d(TAG, "initView()  file.listFiles();"+ file.listFiles().length);File[] picFiles = file.listFiles();for (int i = 0; i<picFiles.length;i++){imgList.add(picFiles[i].getPath());}adapter = new RecyclerViewAdapter(mContext,imgList);recyclerView.setAdapter(adapter);recyclerView.setNestedScrollingEnabled(false);
//}private void checkNeedPermissions(){if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED|| ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) {//多个权限一起申请ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE}, 1);}}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><androidx.recyclerview.widget.RecyclerViewandroid:id="@+id/recyclerView"android:layout_height="1000px"android:layout_width="match_parent"android:background="@color/teal_200"></androidx.recyclerview.widget.RecyclerView><ImageViewandroid:id="@+id/img"android:layout_width="match_parent"android:layout_height="500px"android:background="@color/design_default_color_error"/>
</LinearLayout>

adapter:

package com.example.showpicture.showLocalPicture.adapter;import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ImageView;import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;import com.example.showpicture.R;
import com.squareup.picasso.Picasso;import java.util.List;public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> implements AdapterView.OnItemClickListener {private static final String TAG = RecyclerViewAdapter.class.getSimpleName();private Context mContext;private List<String> mImgList;private LayoutInflater inflater;public RecyclerViewAdapter(Context context, List<String> imgList){this.mContext = context;this.mImgList = imgList;inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);}@NonNull@Overridepublic ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {View view = inflater.inflate(R.layout.adapter_recycler_view,parent,false);ViewHolder holder = new ViewHolder(view);return holder;}@Overridepublic void onBindViewHolder(@NonNull ViewHolder holder, int position) {Log.d(TAG, "onBindViewHolder() called with: holder = [" + holder + "], position = [" + mImgList.get(position) + "]");holder.imageView.setImageURI(Uri.parse(mImgList.get(position)));}@Overridepublic int getItemCount() {return mImgList.size();}@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {}class ViewHolder extends RecyclerView.ViewHolder{private ImageView imageView;public ViewHolder(View view) {super(view);imageView = view.findViewById(R.id.img_local);}}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><ImageViewandroid:id="@+id/img_local"android:layout_width="match_parent"android:layout_height="match_parent"/>
</LinearLayout>

二、网络图片显示

fragment:

用glide或者picasso都可以,用glide的时候需要申请requestopteins

package com.example.showpicture.showNetWorkPicture;import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;import com.bumptech.glide.Glide;
import com.bumptech.glide.Priority;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.RequestOptions;
import com.example.showpicture.R;
import com.squareup.picasso.Picasso;public class ShowNetWorkPictureFragment extends Fragment {private static final String TAG = ShowNetWorkPictureFragment.class.getSimpleName();private Context mContext;@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {return inflater.inflate(R.layout.fragment_network,container,false);}@Overridepublic void onStart() {super.onStart();mContext = getContext();checkNeedPermissions();initView();}private void checkNeedPermissions(){if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED|| ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) {//多个权限一起申请ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE}, 1);}}private void initView() {Log.d(TAG, "initView() called");ImageView imageView = getView().findViewById(R.id.img_net);RequestOptions options = new RequestOptions().centerCrop().placeholder(R.drawable.abc_vector_test).error(R.drawable.ic_launcher_background).priority(Priority.HIGH).diskCacheStrategy(DiskCacheStrategy.NONE);
// 用glide或者picasso都可以,用glide的时候需要申请requestopteins       Glide.with(mContext).load("https://alifei04.cfp.cn/creative/vcg/veer/1600water/veer-303764513.jpg")
//                .apply(options)
//                .into(imageView);Picasso.with(mContext).load("https://alifei04.cfp.cn/creative/vcg/veer/1600water/veer-303764513.jpg").resize(300, 300).into(imageView);}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><ImageViewandroid:id="@+id/img_net"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentTop="true"android:layout_centerHorizontal="true"android:padding="16dp" />
</LinearLayout>

显示本地图片以及网络图片相关推荐

  1. c# picturebox控件显示本地图片和显示网上的图片

    显示本地图片 pictureBox1.Image=Image.FormFile(@"图片路径"); 显示网络图片 pictureBox1.ImageLocation = @&quo ...

  2. Android 使用ContentProvider扫描手机中的图片,仿微信显示本地图片效果

    转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/18730223),请尊重他人的辛勤劳动成果,谢谢! 写这篇文 ...

  3. (转)Silverlight显示本地图片、Stream转Byte数组

    转载自:http://www.cnblogs.com/forgetu/archive/2010/08/07/silverlight-load-local-image-stream-to-byte-ar ...

  4. 在InternetExplorer.Application中显示本地图片

    忘记了,喜欢一个人的感觉 Demon's Blog  »  程序设计  »  在InternetExplorer.Application中显示本地图片 « 对VBS效率的再思考--处理二进制数据 Wo ...

  5. Android 使用开源库StickyGridHeaders来实现带sections和headers的GridView显示本地图片效果...

    转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/20481185),请尊重他人的辛勤劳动成果,谢谢! 大家好! ...

  6. Django在浏览器上显示本地图片

    Django项目在浏览器上显示本地图片,关键在于url的配置. 代码如下: from django.views.static import serve url(r'^book/(?P<path& ...

  7. android ImageButton显示本地图片

    2019独角兽企业重金招聘Python工程师标准>>> 得到本地图片(png,jpeg,gif)的路径后,将图片显示在ImageButton上.这里先读出图片大小,在设置采样率,使得 ...

  8. HTML5页面显示本地图片,h5使用FileReader读取本地上传的图片文件并显示到浏览器...

    html> h5使用FileReader读取本地图片文件并显示到浏览器-赵克立博客 ! function(a, b) { var showimg = document.getElementByI ...

  9. jsp中img显示本地图片

    在web应用中是不能访问本地文件De,可以把要引用的文件移到项目中,通过相对路径获取.有时候我们就是需要访问本地文件,那么我们可以通过流的形式传入.例如:  在showPic.jsp中:<bod ...

最新文章

  1. 20100506 学习记录:grdview添加新的一行数据
  2. Android——apk反编译
  3. word2016配置Mathtype
  4. android自适应拉伸图片,Android 启动页-解决图片被拉伸和压缩问题,适配虚拟导航栏...
  5. java常见异常总结---自己工作中经常遇到的一些异常
  6. 同学,你有一份来自支付宝AI学姐的面试锦囊待查收
  7. linux的基础知识——signal信号捕捉,信号集操作函数
  8. 奖学金(信息学奥赛一本通-T1179)
  9. 天天生鲜(Python)Django项目学习资料(视频、源码)
  10. ES索引重建reindex详解
  11. IEEE年度薪酬报告发布!美国程序员薪资中位数7年来首次下降2.4万
  12. 汽车自动变速器的共性技术
  13. 启用php client,RabbitMQ(二):安装 和 PHP Client
  14. html移动端适配最优方法
  15. Mac Gem Menu for OneNote 激活——应用任何版本
  16. endnote中科大版是什么意思_ios14.2rc是什么意思 ios14.2rc版是原来的“GM”版吗
  17. CSDN2022总排名前十统计
  18. WPF绑定XML数据源
  19. HTML制作简单课表
  20. 谁打开了便携笔记本的潘多拉盒子

热门文章

  1. 【编程技巧】NSDate,NSDateFormatter,NSTimeInterval
  2. 一款基于微客服的仿微信的聊天软件
  3. echarts属性:图例legend、底部缩放条dataZoom
  4. Attention原理
  5. 前端网页三剑客------HTML基础
  6. WPF UI框架界面开发教程(五)
  7. 时光剪影、拂袖只为淡然
  8. 关闭线程池 shutdown 和 shutdownNow 的区别?
  9. 网站策划常识[转载]
  10. 机器学习算法(五):基于企鹅数据集的决策树分类预测