package com.cascade;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.content.res.AssetManager;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.Display;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import com.cascade.DrawableManager.ImageCallback;
public class TestCascadeActivity extends Activity {
private static final String TAG = "TestCascadeActivity";
private LinearLayout llCcasecade;
private LinearLayout lvCasecade1;
private LinearLayout lvCasecade2;
private LinearLayout lvCasecade3;
private Display display;
private AssetManager assetManager;
private List<String> iamgePaths;
private static final String imgspath = "imgs";
private int casecadeWidth;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
display = this.getWindowManager().getDefaultDisplay();
casecadeWidth = display.getWidth()/3;
assetManager = this.getAssets();
findView();
}
private void findView(){
llCcasecade = (LinearLayout)this.findViewById(R.id.llCcasecade);
lvCasecade1 = (LinearLayout)this.findViewById(R.id.casecade1);
lvCasecade2 = (LinearLayout)this.findViewById(R.id.casecade2);
lvCasecade3 = (LinearLayout)this.findViewById(R.id.casecade3);
LayoutParams lp1 = lvCasecade1.getLayoutParams();
lp1.width = casecadeWidth;
lvCasecade1.setLayoutParams(lp1);
LayoutParams lp2 = lvCasecade2.getLayoutParams();
lp2.width = casecadeWidth;
lvCasecade2.setLayoutParams(lp2);
LayoutParams lp3 = lvCasecade3.getLayoutParams();
lp3.width = casecadeWidth;
lvCasecade3.setLayoutParams(lp3);
try {
iamgePaths = Arrays.asList(assetManager.list("imgs"));
} catch (IOException e) {
e.printStackTrace();
}
int j = 0;
for (int i = 0; i < iamgePaths.size(); i++) {
addImgToCasecade(iamgePaths.get(i), j);
j++;
if(j>=3) j = 0;
}
}
private void addImgToCasecade(String filename,int j){
ImageView iv = (ImageView)LayoutInflater.from(this).inflate(R.layout.item, null);
if(j==0){
lvCasecade1.addView(iv);
}else if(j==1){
lvCasecade2.addView(iv);
}else{
lvCasecade3.addView(iv);
}
String imgPath = imgspath+"/"+filename;
iv.setTag(imgPath);
Drawable drawable = DrawableManager.getInstance().fetchDrawableOnThread(imgPath, assetManager, new ImageCallback() {
@Override
public void imageLoaded(Drawable imageDrawable, String imageUrl) {
ImageView iv = (ImageView)llCcasecade.findViewWithTag(imageUrl);
if(iv!=null && imageDrawable!=null){
int oldwidth = imageDrawable.getIntrinsicWidth();
int oldheight = imageDrawable.getIntrinsicHeight();
LayoutParams lp = iv.getLayoutParams();
lp.height = (oldheight * casecadeWidth)/oldwidth;
iv.setPadding(0, 2, 0, 0);
iv.setLayoutParams(lp);
iv.setImageDrawable(imageDrawable);
}
}
});
if(drawable!=null){
int oldwidth = drawable.getIntrinsicWidth();
int oldheight = drawable.getIntrinsicHeight();
LayoutParams lp = iv.getLayoutParams();
lp.height = (oldheight * casecadeWidth)/oldwidth;
iv.setPadding(0, 2, 0, 0);
iv.setLayoutParams(lp);
iv.setImageDrawable(drawable);
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
android平台仿pinterest瀑布流展现方式实现
共29个文件
jpg:15个
xml:4个
java:3个
5星 · 超过95%的资源 需积分: 33 133 下载量 30 浏览量
2014-03-10
20:08:27
上传
评论
收藏 405KB ZIP 举报
温馨提示
android平台仿pinterest瀑布流展现方式实现,很经典的瀑布流
资源推荐
资源详情
资源评论
收起资源包目录
android平台仿pinterest瀑布流展现方式实现.zip (29个子文件)
TestCascade
.project 847B
project.properties 360B
proguard.cfg 1KB
src
com
cascade
TestCascadeActivity.java 4KB
DrawableManager.java 3KB
AndroidManifest.xml 735B
res
drawable-ldpi
ic_launcher.png 2KB
drawable-hdpi
ic_launcher.png 4KB
drawable-mdpi
ic_launcher.png 3KB
layout
item.xml 288B
main.xml 1KB
values
strings.xml 188B
assets
imgs
7h9f_kqyxowslkrbdktcugfjeg5sckzsew_450x675.jpg_200x999.jpg 33KB
21mj9_kqywsws7krbhs2cugfjeg5sckzsew_597x800.jpg_200x999.jpg 10KB
sgg_kqyvcvsekrbfcrkugfjeg5sckzsew_500x749.jpg_200x999.jpg 29KB
mgk1_kqyvmrklkrbhmv2ugfjeg5sckzsew_300x450.jpg_200x999.jpg 23KB
278qh_kqytsq27krbgox2ugfjeg5sckzsew_450x675.jpg_200x999.jpg 29KB
273x6_kqyvawslkrbhg6cugfjeg5sckzsew_500x750.jpg_200x999.jpg 27KB
21mj9_kqywmrk7krbgos2ugfjeg5sckzsew_800x800.jpg_200x999.jpg 18KB
21mpn_kqyvkq2dkrbg2x2ugfjeg5sckzsew_400x600.jpg_200x999.jpg 30KB
gtr4_kqywkvs7krbfcwsugfjeg5sckzsew_450x630.jpg_200x999.jpg 27KB
1ppbp_kqytorkzkrbhswtwgfjeg5sckzsew_800x1200.jpg_200x999.jpg 26KB
d4d0_kqyvmq2mkrbhsysugfjeg5sckzsew_600x600.jpg_200x999.jpg 17KB
7h7z_kqywerkekrbgozcugfjeg5sckzsew_800x800.jpg_200x999.jpg 23KB
sgg_kqyxswsekrbguwkugfjeg5sckzsew_230x330.jpg_200x999.jpg 37KB
c3z0_kqywoq2ekrbf6rkugfjeg5sckzsew_640x822.jpg_200x999.jpg 29KB
273w2_kqyuwvslkrbhmzcugfjeg5sckzsew_500x750.jpg_200x999.jpg 24KB
gen
com
cascade
R.java 1005B
.classpath 364B
bin
共 29 条
- 1
未来已来_feature
- 粉丝: 10
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页