cc_美团 商品详情图片放大显示ViewPager




    		    cc_美团 商品详情图片放大显示ViewPager

package com.chencheng.meituan.view;

import java.util.ArrayList;

import java.util.List;

import com.xinbo.widget.HackyViewPager;

import android.app.Activity;

import android.graphics.Bitmap;

import android.graphics.drawable.Drawable;

import android.os.Bundle;

import android.support.v4.view.PagerAdapter;

import android.support.v4.view.ViewPager;

import android.util.Log;

import android.view.Menu;

import android.view.View;

import android.view.ViewGroup;

import android.view.ViewGroup.LayoutParams;

import uk.co.senab.photoview.PhotoView;

import com.nostra13.universalimageloader.core.DisplayImageOptions;

import com.nostra13.universalimageloader.core.ImageLoader;

import com.nostra13.universalimageloader.core.assist.FailReason;

import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;

import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;

import com.xinbo.utils.BitmapUtils;

import com.yuchen.meituan.R;

public class ShowImgActivity extends Activity {

private List<Drawable> mPics = new ArrayList<Drawable>();

private List<String> mImgURLs = new ArrayList<String>();

private ViewPager mViewPager;

private DisplayImageOptions options;

private Drawable mDrawable;

private String mImageUrl;

private MyPagerAdapter mPagerAdapter;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_view_pager);

mImageUrl = getIntent().getStringExtra("imageUrl");

initUIL();

initViewPager();

}

private void initViewPager() {

mViewPager = (HackyViewPager) findViewById(R.id.view_pager);

setContentView(mViewPager);

mPagerAdapter = new MyPagerAdapter();

loadPic();

// mViewPager.setAdapter(mPagerAdapter);

}

private void loadPic() {

Log.e("loadPic", "mImageUrl = " + mImageUrl);

ImageLoader.getInstance().loadImage(mImageUrl, options,

new ImageLoadingListener() {

@Override

public void onLoadingStarted(String arg0, View arg1) {

}

@Override

public void onLoadingFailed(String arg0, View arg1,

FailReason arg2) {

}

@Override

public void onLoadingComplete(String arg0, View arg1,

Bitmap arg2) {

mDrawable = BitmapUtils.bitmap2Drawable(arg2);

mViewPager.setAdapter(mPagerAdapter);

}

@Override

public void onLoadingCancelled(String arg0, View arg1) {

}

});

}

private void initUIL() {

options = new DisplayImageOptions.Builder()

.showImageOnLoading(R.drawable.ic_review_score_tip_excellent_off)

// 设置图片在下载期间显示的默认图片

.showImageForEmptyUri(R.drawable.ic_review_score_tip_excellent_off)

// 设置URI错误或者为空时显示的图片

.showImageOnFail(R.drawable.ic_review_score_tip_excellent_off)

// 设置图片加载或者解析出现错误时设置的图片

.cacheInMemory(true)

// 是否内存缓存

.cacheOnDisk(true)

// 是否外存缓存

.considerExifParams(true)

// .displayer(new RoundedBitmapDisplayer(100))// 是否设置图片圆角

.displayer(new FadeInBitmapDisplayer(200))// 图片加载好之后渐入的时间

.build();

}

class MyPagerAdapter extends PagerAdapter {

@Override

public int getCount() {

return 3;

}

@Override

public boolean isViewFromObject(View view, Object object) {

return view == object;

}

@Override

public Object instantiateItem(ViewGroup container, int position) {

PhotoView photoView = new PhotoView(container.getContext());

photoView.setImageDrawable(mDrawable);

// 在ViewPager中添加PhotoView,并返回

container.addView(photoView, LayoutParams.MATCH_PARENT,

LayoutParams.MATCH_PARENT);

return photoView;

}

@Override

public void destroyItem(ViewGroup container, int position, Object object) {

container.removeView((View) object);

}

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return false;

}

}

更多相关文章
  • 苹果在周三发布了新款iPod Touch,其主要对两个方面进行了技术上的“修订”——首先是降频了的A8 SoC,其次是通信芯片的升级(引入了对蓝牙4.1的支持).尽管处理器有所降频,但这款长得很像4英寸版iPhone 6.但是厚度要薄上0.6mm的新设备仍然相当畅快,且此举对于电池续航的改善也相当明 ...
  • 要实现监听,要使用代理,控制器要成为TableView的代理. 注意下面的方式是代理方法: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ NSLog(@&quo ...
  •           <h1>首先我们</h1>先来看两个例子:冲咖啡和泡茶.冲咖啡和泡茶的基本流程如下:           所以用代码来创建如下:           咖啡:Caffee.java 1 public class Coffee { 2 void prepare ...
  • DDoS攻击技术正在快速演化,最近出现的基于JavaScript的DDoS攻击具有一个与众不同的特点:任何有浏览器的设备都可能参与攻击,其潜在攻击规模接近无限.   现代网站的绝大多数互动采用的都是JavaScript.JavaScript脚本可直接植入HTML中,或者是从远程服务器载入.   Ja ...
  • 从蠕虫到病毒,到特洛伊木马,钓鱼,SQL注入再到零日漏洞的利用,这些威胁接踵而来,简直是CSO们的噩梦.现在,我们面临着一个更为严重的威胁:高级持续威胁,简称APT.显然,这些安全威胁的名称会随着时间推移而丧失热度.每个CSO都知道APT,每个安全销售也会给产品贴上这一标签.   因为有些公司已经因 ...
  • OneHeap 关注于运行中的 JavaScript 内存信息的展示,用可视化的方式还原了 HeapGraph,有助于理解 v8 内存管理. 背景 JavaScript 运行过程中的大部分数据都保存在堆 (Heap) 中,所以 JavaScript 性能分析另一个比较重要的方面是内存,也就是堆的分析 ...
一周排行
  • 据媒体的最新报道,在安全领域,360又一次将自己与百度的商业竞争演变成了对网民的恐吓:只要网民电脑有360安全卫士在后台运行,那么安装百度的软件的时候,就会遭到360的恶意阻拦甚至"建议清除". ...
  • 一年一度的消费电子展(CES)将于下周在拉斯维加斯举行.该活动一直希望成为将在未来一年影响消费者行为的科技的展览会.各种喧闹声很容易令人迷失方向,因此我邀请三位专家列出他们今年将关注的五大品牌以及原因.下面一起来听听 ...
  • 文/胡舒立(财新传媒总编辑) 事前恐怕没有人能够想象,马云,这个本世纪以来常操一口流利英文活跃于国际场合的中国企业风云人物,会偷天换日,把明明属于中外合资企业阿里巴巴集团的核心资产"支付宝",悄然 ...
  • Mysql 4.X < SHOW TABLE STATUS FROM [DB_NAME] LIKE '[TABLE_NAME]';     Mysql 5.X -- SELECT AUTO_INCREMENT ...
  • 是否到了重写游戏规则的时候了?智能手机开始成为手机大佬们的风向标,如果说诺基亚是上个时代的王者,那么那些觊觎已久的挑战者则希望在智能手机的王国中重新划分版图.这些挑战者意识到,智能手机需要的是一个"互联网手 ...
  • 导数使用T.grad计算. 这里使用pp()打印梯度的符号表达式. 第3行输出是打印了经过优化器简化的符号梯度表达式,与第1个输出相比确实简单多了. fill((x** TensorConstant{2}), Ten ...
  •  D - 乐 Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Status Practice Cod ...
  • 初学Java时得先用cmd编译执行java代码,但是每次都很麻烦地得进入JDK目录,对一些菜鸟们来说cmd命令也不太想记,于是偶想到用批处理直接秒杀这一过程.将下列代码放进txt文档,后缀重命名为.bat,使用时仅需 ...
  • 近期接连辞退了两个人,心情却各有不同. 一个是整天在我身边睡觉不好好干活,早就想除之而后快,辞退后心情一片大好. 另一个工作挺努力的,从到公司两个月每天都加班,奈何终究无法满足我的要求, 今天看他黯然离去,心里其实也 ...
  • 4 请求失败4xx 4xx应答定义了特定服务器响应的请求失败的情况.客户端不应当在不更改请求的情况下重新尝试同一个请求.(例如,增加合适的认证信息).不过,同一个请求交给不同服务器也许就会成功. 4.1 400 Ba ...