使用开源库PhotoView
一、下载地址:https://github.com/chrisbanes/PhotoView
点击DownLoad ZIP,进行下载。
二、解压,然后复制PhotoView-master\library\src\main\java目录下的uk文件夹,用于复制到新建的项目中
参考:http://www.th7.cn/Program/Android/201410/304371.shtml
三、解决“'<>' operator is not allowed for source level below 1.7”的问题
参考:http://blog.csdn.net/sam_jet/article/details/45744251
解决方法:
右键项目--属性--JAVA Compiler--勾选Enable project specific settings--Compiler compliance level--选择1.7--OK.
四、简单使用
1、在布局文件中含有一个imageview控件。
<?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:gravity="center"
android:orientation="vertical" > <ImageView
android:id="@+id/mImageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/wallpaper"
android:contentDescription="@string/app_name" /> </LinearLayout>
activity_main
需要注意的是必须使用android:src,不可以使用Android:background
图片资源在上面下载的压缩包中查找。也可以随意使用自己的。
2、代码中写法。
private ImageView mImageView;
private PhotoViewAttacher mAttacher; @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maindemo); //初始化View
initView();
} //初始化View
private void initView(){ mImageView = (ImageView) findViewById(R.id.mImageView); mAttacher = new PhotoViewAttacher(mImageView);
}
更换图片的时候的写法:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.changeImgBtn) { Drawable bitmap = getResources().getDrawable(R.drawable.header_graphic);
mImageView.setImageDrawable(bitmap); mAttacher.update();//如果不调用的话,替换的图片会出现保持上一张图片的方法状态
}
return super.onOptionsItemSelected(item);
}
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item
android:id="@+id/changeImgBtn"
android:title="更换图片"/>
</menu>
最后需要注销:
@Override
public void onDestroy() {
super.onDestroy(); // Need to call clean-up
mAttacher.cleanup();
}
效果图:
使用开源库PhotoView的更多相关文章
- Android开源库--PhotoView图片查看
如果说我比别人看得更远些,那是因为我站在了巨人的肩上. github地址:https://github.com/chrisbanes/PhotoView 介绍 在一般的应用中,总会遇到查看图片的功能, ...
- 100个Github上Android开源库
项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 React Native, ...
- Android主流UI开源库整理(转载)
http://www.jianshu.com/p/47a4a7b99364 标题隐含了两个层面的意思,一个是主流,另一个是UI.主流既通用,一些常规的按钮.Switch.进度条等控件都是通用控件,因此 ...
- GitHub上排名前100的Android开源库介绍(来自github)
本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍,至于排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果,然后过滤了 ...
- GitHub Top 100的Android开源库
摘要: 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据GitHub搜索Java语言选择「Best M... 本项目主要对目前 GitH ...
- GitHub 上排名前 100 的 Android 开源库进行简单的介绍
若有任何疑问可通过邮件或微博联系我 项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开 ...
- GitHub开源库排名一百的简单介绍,值得收藏!
GitHub Android Libraries Top 100 简介 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据 GitHub ...
- 我的Android进阶之旅】GitHub 上排名前 100 的 Android 开源库进行简单的介绍
GitHub Android Libraries Top 100 简介 本文转载于:https://github.com/Freelander/Android_Data/blob/master/And ...
- <Android开源库 ~ 1> GitHub Android Libraries Top 100 简介
转载自GitHub Android Libraries Top 100 简介 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据 GitH ...
随机推荐
- Hdu oj 5522 Numbers 之解题报告
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABCwAAAL7CAIAAAC5m4NqAAAgAElEQVR4nOy9e7QdVZUvXH+RMcJVdJ
- [RQNOJ313]波浪数
题目描述 波浪数是在一对数字之间交替转换的数,如1212121,双重波浪数则是指在两种进制下都是波浪数的数,如十进制数191919是一个十进制下的波浪数,它对应的十一进制数121212也是一个波浪数, ...
- [原][Android]All WebView methods must be called on the same thread.
问题 webView调用JS出错. class TestJS { ...... public TestJS(){ } ...
- HTTP协议 概述
本文主要说明一些 Http 相关的基本概念和基本知识,主要针对像我一样的初学者,知识主要来自于<Http 权威指南> 除了分享这些基本知识之外,笔者也是为将来找工作复习之用.(协议就是协议 ...
- mybatis系列-01-JDBC
1.1 环境 java环境:jdk1.7.0_79 eclipse mysql:5.7 1.2 创建mysql数据 导入下边的脚本: 导入之后数据库: sql_table.sql:记录 ...
- POJ1149 PIGS
想了好久啊...(#-.-) 开始想到m*n个点的构图,明显超时,于是考虑压缩节点个数 我们发现每个猪圈最后被有且只有一个人调整,于是想到对于一个人,连接他能调整的每个猪圈的上一个控制人.(不懂可以开 ...
- openstack python sdk list tenants get token get servers
1,openstack python sdk 获取token 获取租户tenants projects #!/bin/bash export OS_PROJECT_DOMAIN_ID=default ...
- A Tour of Go Switch evaluation order
Switch cases evaluate cases from top to bottom, stopping when a case succeeds. (For example, switch ...
- (二) win8+XAML Binding(数据绑定)
第一次接触Binding是用到listview的时候,ListView中如果要动态显示一些内容,我一开始想的就是动态生成一个item,然后插入... 其实用Binding就不用在代码中涉及listvi ...
- jQuery的遍历方法
1.jQuery中的map使用方法 <!DOCTYPE html> <html> <head> <style>p { color:red; }</ ...