package com.losileeya.selectmaster.base;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
public class ViewHolder {
private SparseArray<View> mViews;
private int mPostion;
private View mConvertView;
public int getmPostion() {
return mPostion;
}
public ViewHolder(Context context, ViewGroup parent, int layoutId,
int postion) {
this.mViews = new SparseArray<View>();
this.mPostion = postion;
mConvertView = LayoutInflater.from(context).inflate(layoutId, parent,
false);
mConvertView.setTag(this);
}
public static ViewHolder getHolder(Context context, View convertView,
ViewGroup parent, int layoutId, int postion) {
if (convertView == null) {
return new ViewHolder(context, parent, layoutId, postion);
} else {
ViewHolder viewHolder = (ViewHolder) convertView.getTag();
viewHolder.mPostion = postion;
return viewHolder;
}
}
public View getmConvertView() {
return mConvertView;
}
/**
* 通过viewId寻找view
* */
@SuppressWarnings("unchecked")
public <T extends View> T getView(int viewId) {
View view = mViews.get(viewId);
if (view == null) {
view = mConvertView.findViewById(viewId);
mViews.put(viewId, view);
}
return (T) view;
}
/**
* 设置文字
* */
public ViewHolder setText(int viewId, String text) {
TextView tv = getView(viewId);
tv.setText(text);
return this;
}
/**
* 设置图片
* */
public ViewHolder setImageResource(int viewId, int resId) {
ImageView img = getView(viewId);
img.setImageResource(resId);
return this;
}
/**
* 设置图片
* */
public ViewHolder setImageBitmap(int viewId, Bitmap bitmap) {
ImageView img = getView(viewId);
img.setImageBitmap(bitmap);
return this;
}
/**
* 设置图片
* */
public ViewHolder setImageURL(int viewId, String url) {
ImageView img = getView(viewId);
// imageLoder.getInstance().loadImage(view,url);
// img.setImageResource(resId);
// BitmapFactory bitmapFactory = new BitmapFactory();
Bitmap bit=null;
try {
bit = BitmapFactory.decodeFile(url);
img.setImageBitmap(bit);
} catch (OutOfMemoryError e) {
// 捕获OutOfMemoryError,避免直接崩溃
}
// 先判断是否已经回收
if(bit != null && !bit.isRecycled()){
// 回收并且置为null
bit.recycle();
bit = null;
}
return this;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
SelectMaster.rar
共57个文件
xml:31个
java:6个
png:5个
需积分: 9 34 下载量 42 浏览量
2016-07-03
16:46:11
上传
评论
收藏 111KB RAR 举报
温馨提示
android的selector对于android开发者而言再熟悉不过了,这里讲了cardView的selector的使用以及grideview保留状态的selector的使用
资源推荐
资源详情
资源评论
收起资源包目录
SelectMaster.rar (57个子文件)
SelectMaster
SelectMaster.iml 943B
gradlew 5KB
settings.gradle 16B
.idea
libraries
support_vector_drawable_24_0_0.xml 685B
butterknife_annotations_8_0_1.xml 591B
appcompat_v7_24_0_0.xml 806B
animated_vector_drawable_24_0_0.xml 690B
cardview_v7_24_0_0.xml 625B
design_24_0_0.xml 770B
support_annotations_24_0_0.xml 585B
recyclerview_v7_24_0_0.xml 824B
support_v4_24_0_0.xml 948B
butterknife_8_0_1.xml 608B
runConfigurations.xml 564B
misc.xml 2KB
compiler.xml 686B
workspace.xml 165KB
gradle.xml 819B
.name 12B
encodings.xml 159B
modules.xml 361B
copyright
profiles_settings.xml 76B
gradle
wrapper
gradle-wrapper.properties 231B
gradle-wrapper.jar 52KB
local.properties 428B
gradlew.bat 2KB
gradle.properties 872B
.gitignore 105B
app
src
androidTest
java
com
losileeya
selectmaster
ApplicationTest.java 369B
test
java
com
losileeya
selectmaster
ExampleUnitTest.java 333B
main
AndroidManifest.xml 685B
res
mipmap-hdpi
ic_launcher.png 3KB
mipmap-xxxhdpi
ic_launcher.png 10KB
mipmap-xhdpi
ic_launcher.png 5KB
mipmap-mdpi
ic_launcher.png 2KB
drawable
gride_selector.xml 1KB
card_foreground_selector.xml 599B
card_foreground.xml 288B
layout
gride_item.xml 619B
activity_main.xml 2KB
drawable-v21
card_foreground_selector.xml 475B
card_foreground.xml 199B
values-w820dp
dimens.xml 364B
values
colors.xml 214B
strings.xml 78B
styles.xml 394B
dimens.xml 259B
mipmap-xxhdpi
ic_launcher.png 8KB
java
com
losileeya
selectmaster
base
CommonAdapter.java 1KB
ViewHolder.java 3KB
MainActivity.java 2KB
adapter
TagAdapter.java 627B
libs
app.iml 11KB
.gitignore 8B
build.gradle 866B
proguard-rules.pro 662B
build.gradle 587B
共 57 条
- 1
资源评论
zy9011
- 粉丝: 488
- 资源: 38
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功