public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//模拟的数据内容集合
List<ContentBean> data = new ArrayList<ContentBean>();
for (int i = 0; i < 15; i++) {
ContentBean bean = new ContentBean();
// 默认都给他们赋值当前都没有点赞
bean.setZanFocus(false);
bean.setZanNum(i);
// 默认都给他们赋值当前都没有收藏
bean.setShoucanFocus(false);
bean.setShoucanNum(i);
data.add(bean);
}
ListView listview = (ListView) findViewById(R.id.listview);
listview.setAdapter(new MyAdapter(this,data));
}
main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.zan.MainActivity" >
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
</RelativeLayout>
ContentBean.java
public class ContentBean {
private boolean zanFocus, shoucanFocus;
private int zanNum, shoucanNum;
public boolean isShoucanFocus() {
return shoucanFocus;
}
public void setShoucanFocus(boolean shoucanFocus) {
this.shoucanFocus = shoucanFocus;
}
public int getShoucanNum() {
return shoucanNum;
}
public void setShoucanNum(int shoucanNum) {
this.shoucanNum = shoucanNum;
}
public boolean isZanFocus() {
return zanFocus;
}
public void setZanFocus(boolean zanFocus) {
this.zanFocus = zanFocus;
}
public int getZanNum() {
return zanNum;
}
public void setZanNum(int zanNum) {
this.zanNum = zanNum;
}
}
MyAdapter.java
public class MyAdapter extends BaseAdapter {
List<ContentBean> data = new ArrayList<ContentBean>();
Context context;
public MyAdapter(Context context, List<ContentBean> data) {
this.context = context;
this.data = data;
}
@Override
public int getCount() {
return data.size();// 返回20条数据
}
@Override
public Object getItem(int arg0) {
return data.get(arg0);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
final ContentBean bean = data.get(position);
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.item,
parent, false);
holder = new ViewHolder();
holder.zan_img = (ImageView) convertView.findViewById(R.id.zan_img);
holder.zan_num = (TextView) convertView.findViewById(R.id.zan_num);
holder.shoucan_img = (ImageView) convertView.findViewById(R.id.shoucan_img);
holder.shoucan_num = (TextView) convertView.findViewById(R.id.shoucan_num);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
// 取出bean中当记录状态是否为true,是的话则给img设置focus点赞图片
if (bean.isZanFocus()) {
holder.zan_img.setImageResource(R.drawable.zan_focus);
} else {
holder.zan_img.setImageResource(R.drawable.zan_release);
}
// 取出bean中当记录状态是否为true,是的话则给img设置release收藏图片
if (bean.isShoucanFocus()) {
holder.shoucan_img.setImageResource(R.drawable.shoucang_focus);
} else {
holder.shoucan_img.setImageResource(R.drawable.shoucang_release);
}
// 设置赞的数量
holder.zan_num.setText(bean.getZanNum() + "");
//设置收藏的数量
holder.shoucan_num.setText(bean.getShoucanNum()+"");
holder.zan_img.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 获取上次是否已经被点击
boolean flag = bean.isZanFocus();
// 判断当前flag是点赞还是取消赞,是的话就给bean值减1,否则就加1
if (flag) {
bean.setZanNum(bean.getZanNum() - 1);
} else {
bean.setZanNum(bean.getZanNum() + 1);
}
// 反向存储记录,实现取消点赞功能
bean.setZanFocus(!flag);
AnimationTools.scale(holder.zan_img);
}
});
holder.shoucan_img.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 获取上次是否已经被点击
boolean flag = bean.isShoucanFocus();
// 判断当前flag是收藏还是取收藏,是的话就给bean值减1,否则就加1
if (flag) {
bean.setShoucanNum(bean.getShoucanNum() - 1);
} else {
bean.setShoucanNum(bean.getShoucanNum() + 1);
}
// 反向存储记录,实现取消收藏功能
bean.setShoucanFocus(!flag);
//动画
AnimationTools.scale(holder.shoucan_img);
}
});
return convertView;
}
private class ViewHolder {
private ImageView zan_img,shoucan_img;
private TextView zan_num,shoucan_num;
}
}
item.xml
<?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="50dp"
android:gravity="center"
android:orientation="horizontal" >
<ImageView
android:id="@+id/zan_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/zan_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
AnimationTools.java
public class AnimationTools {
public static void scale(View v) {
ScaleAnimation anim = new ScaleAnimation(1.0f, 1.5f, 1.0f, 1.5f,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
0.5f);
anim.setDuration(300);
v.startAnimation(anim);
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有