Android 简单的图片查看器源码实现
发布时间 - 2026-01-11 03:14:05 点击率:次本文介绍了Android 简单的图片查看器源码实现,分享给大家,具体如下:
public class MainActivity extends Activity {
private EditText et_path;
private ImageView iv;
//创建handler 对象
// private Handler handler = new Handler(){
//
// //处理消息
// public void handleMessage(android.os.Message msg) {
//
// Bitmap bitmap = (Bitmap) msg.obj;
// iv.setImageBitmap(bitmap);
// };};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// [1]找到我们关心的控件
et_path = (EditText) findViewById(R.id.et_path);
iv = (ImageView) findViewById(R.id.iv);
}
// [2]点击按钮进行查看 指定路径的源码
public void click(View v) {
new Thread(){public void run() {
try {
//[2.1]获取访问图片的路径
String path = et_path.getText().toString().trim();
File file = new File(getCacheDir(),Base64.encodeToString(path.getBytes(), Base64.DEFAULT));
if (file.exists()&& file.length()>0) {
//使用缓存 的图片
System.out.println("使用缓存图片 ");
final Bitmap cacheBitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
//把cacheBitmap 显示到iv上
// Message msg = Message.obtain();
// msg.obj = cacheBitmap;
// handler.sendMessage(msg); //发消息
runOnUiThread(new Runnable() {
public void run() {
iv.setImageBitmap(cacheBitmap);
}
});
}else{
//第一次访问 联网获取数据
System.out.println("第一次访问连接网络");
//[2.2]创建url对象
URL url = new URL(path);
//[2.3]获取httpurlconnection
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//[2.4]设置请求的方式
conn.setRequestMethod("GET");
//[2.5]设置超时时间
conn.setConnectTimeout(5000);
//[2.6]获取服务器返回的状态码
int code = conn.getResponseCode();
if (code == 200) {
//[2.7]获取图片的数据 不管是什么数据(txt文本 图片数据 )都是以流的形式返回
InputStream in = conn.getInputStream();
//[2.7]缓存图片 谷歌给我们提供了一个缓存目录
FileOutputStream fos = new FileOutputStream(file);
int len = -1;
byte[] buffer = new byte[1024];//1kb
while((len=in.read(buffer))!=-1){
fos.write(buffer, 0, len);
}
fos.close();
in.close();
//[2.8]通过位图工厂 获取bitmap(bitmap)
final Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
//这句api 不 管你在什么位置上调用 action都运行在UI线程里
runOnUiThread(new Runnable() {
public void run() {
//run方法一定执行在UI线程 里
// [2.9]把bitmap显示到iv上
iv.setImageBitmap(bitmap);
}
});
// Message msg = Message.obtain(); //使用msg的静态方法 可以减少对象的创建
// msg.obj = bitmap;
// handler.sendMessage(msg); //发消息
}
}
} catch (Exception e) {
e.printStackTrace();
}
};}.start();}}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android
# 图片查看器
# 安卓图片查看器源码
# android查看网络图片的实现方法
# Android图片处理教程之全景查看效果实现
# Android仿百度图片查看功能
# android自定义Camera拍照并查看图片
# Android 通过网络图片路径查看图片实例详解
# Android 网络图片查看器与网页源码查看器
# android网络图片查看器简单实现代码
# Android 实现WebView点击图片查看大图列表及图片保存功能
# Android实现图片查看功能
# 发消息
# 你在
# 给我们
# 给大家
# 这句
# 大家多多
# 可以减少
# 查看器
# id
# click
# onCreate
# layout
# Thread
# View
# setContentView
# super
# savedInstanceState
# findViewById
# activity_main
# Bundle
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在万网自助建站中设置域名及备案?
Laravel如何配置和使用缓存?(Redis代码示例)
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
如何自定义建站之星模板颜色并下载新样式?
制作公司内部网站有哪些,内网如何建网站?
JavaScript常见的五种数组去重的方式
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
Android GridView 滑动条设置一直显示状态(推荐)
如何在万网利用已有域名快速建站?
UC浏览器如何设置启动页 UC浏览器启动页设置方法
Swift开发中switch语句值绑定模式
香港网站服务器数量如何影响SEO优化效果?
JavaScript如何实现音频处理_Web Audio API如何工作?
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
高防服务器如何保障网站安全无虞?
网站制作价目表怎么做,珍爱网婚介费用多少?
微信公众帐号开发教程之图文消息全攻略
轻松掌握MySQL函数中的last_insert_id()
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
如何用VPS主机快速搭建个人网站?
Bootstrap整体框架之JavaScript插件架构
,在苏州找工作,上哪个网站比较好?
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
历史网站制作软件,华为如何找回被删除的网站?
使用Dockerfile构建java web环境
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
如何快速上传建站程序避免常见错误?
如何在万网主机上快速搭建网站?
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
Laravel如何使用Sanctum进行API认证?(SPA实战)
高防服务器:AI智能防御DDoS攻击与数据安全保障
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
怎么用AI帮你设计一套个性化的手机App图标?
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
下一篇:勇者联盟新手入局第1天攻略
下一篇:勇者联盟新手入局第1天攻略

