使用开源库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 ...
随机推荐
- FL2440移植u-boot2011.09
u-boot version:2011.09-rc1 /home/lucas/u-boot-2011.09-rc1 OS:debian 7.1 cross-compilation chain:arm- ...
- SQL日志文件的作用
服务器意外关闭造成的损失.服务器意外关闭造成的损失.解决数据一致性问题.数据库时点恢复的问题,这四个常见的问题,SQL Server数据库管理员,可以通过了解数据日志文件,轻松排除故障. 当系统出现故 ...
- NOIP2004 合并石子
二.合并果子 (fruit.pas/dpr/c/cpp) [问题描述] 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合并,多多 ...
- Struts2.x jsp页面无法使用jsp:forward跳转到action
问题:使用<jsp:forward page="test"></jsp:forward>语句无法跳转到test所对应的action. 解决办法:在web.x ...
- HDU-4669 Mutiples on a circle 环形DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4669 题意:给一串数字连乘一个环,求连续的子串中组成的新的数字能被K整除的个数. 首先容易想到用DP来 ...
- tcp/udp socket编程异同
一.TCP与UDP的区别 基于连接与无连接 对系统资源的要求(TCP较多,UDP少) UDP程序结构较简单 流模式与数据报模式 TCP保证数据正确性,UDP可能丢包 TCP保证数据顺序,UDP不保证 ...
- hdoj 1874 畅通工程续【dijkstra算法or spfa算法】
畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- 射频识别技术漫谈(9)——动物标签HDX【worldsing笔记】
半双工(HDX,Half Duplex)技术是ISO11784/11785中规定的另一种标签与读写器之间的通讯方式.读写器先打开射频场对标签充电以激活标签,然后关闭磁场,标签在读写器磁场关闭的情况下向 ...
- Float(浮动)
一.什么是浮动? CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列. 二.浮动元素的特点 元素浮动后会自动变成行块元素 浮动元素的父元素高度宽计算将忽略浮动子元素 浮动 ...
- SQL Server内存性能分析
内存概念: Working Set = Private Bytes + Shared Memory Working Set:某个进程的地址空间中,存放在物理内存的那一部分 Private Bytes: ...