android实现在线预览图片,手势放大缩小
简要描述
首先对文件类型进行判断。WPS不支持在线预览图片,当文件是doc、xls、pdf等,调用WPS。图片时,调用预览图片方法
1.判断文件类型方法
2.新建一个Activity类,并且继承Activity,来实现对图片的预览
Intent intent=new Intent(context, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("url1", url);//类似于set、get方法
context.startActivity(intent);
当新建一个Activity时,需要在AndroidManifest.xml声明
<activity
android:hardwareAccelerated="false"
android:name="org.apache.cordova.engine.MainActivity"
android:label="@string/app_name"
tools:ignore="Instantiatable">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
</intent-filter>
</activity>
3.在新建的Activity类中进行对图片显示的操作
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
Toast toast=Toast.makeText(MainActivity.this,"正在加载图片...", Toast.LENGTH_LONG);
showMyToast(toast,1000);//设置吐丝的时间
Intent intent = getIntent();//get到上一个类中传递的数据
url1 = intent.getStringExtra("url1");//get到点击链接传递的url
setContentView(R.layout.activity_picture);//
myImg=(ImageView)findViewById(R.id.imageurl);//
//使用handler发送消息,只需要两步,首先是创建一个Handler对象,重写handleMessage方法,,然后需要消息通信的地方,通过Handler的sendMessage方法发送消息
myHandler=new Handler()
{
public void handleMessage(android.os.Message msg)
{
if(msg.what==0x1122)
{
//发送图片的URL
myImg.setImageBitmap(bitmap);
}
};
};
//新建一个子线程,在子线程中发送消息
new Thread()
{
public void run()
{
URL url;
try {
url = new URL(url1);
InputStream is=url.openStream();
bitmap= BitmapFactory.decodeStream(is);
is.close();
} catch (Exception e) {
e.printStackTrace();
}
myHandler.sendEmptyMessage(0x1122);
};
}.start();
//设置监听,当手势对图片进行操作时,会进行相应的变化
myImg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this, PictureShowActivity.class);
startActivity(intent);
}
});
}
//设置吐丝显示时间
public void showMyToast(final Toast toast, final int cnt) {
final Timer timer =new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
toast.show();
}
},0,3000);
new Timer().schedule(new TimerTask() {
@Override
public void run() {
toast.cancel();
timer.cancel();
}
}, cnt );
}
}
4.显示图片,新建一个xml
是用来显示图片的页面

<?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"
android:orientation="vertical"
android:background="#000000"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<org.apache.cordova.picturemanage.ZoomImageView
android:id="@+id/imageurl"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="matrix"
android:gravity="center"
/>
</LinearLayout>

该博客介绍了如何在Android中实现图片在线预览并支持手势放大缩小功能。首先,通过文件类型判断决定是否调用WPS预览。接着,创建一个Activity用于图片预览,使用Intent传递URL,并在新Activity中加载图片,利用Handler和子线程处理图片加载,同时设置ImageView以支持手势缩放。此外,还展示了用于显示图片的XML布局和一个自定义的ZoomImageView类,该类实现了手势检测,能够根据手势变化调整图片的缩放比例。
最低0.47元/天 解锁文章

3770

被折叠的 条评论
为什么被折叠?



