使用动画,Handler, ListView 优化, ListView滚动监听
2017-09-01 19:15
197 查看
布局图片
listview +标题
item
主页面myactivity
第二个界面
<ImageView android:id="@+id/iv_img" android:layout_width="200dp" android:layout_height="200dp" android:src="@mipmap/ic_launcher" android:layout_centerInParent="true" />
listview +标题
<?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:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="手机列表" android:textSize="25dp" /> <ListView android:id="@+id/listview_lv" android:layout_width="match_parent" android:layout_height="match_parent"></ListView> </LinearLayout>
item
<?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_paren e122 t" > <ImageView android:id="@+id/i_img" android:layout_width="80dp" android:layout_height="80dp" android:src="@mipmap/ic_launcher" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/t_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="小米" android:textSize="15dp" /> <TextView android:id="@+id/t_price" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="1600" android:textSize="15dp" /> </LinearLayout> </LinearLayout> bean类
package com.example.sanzhouui; /** * Created by asus on 2017/9/1. */ public class Goods { public String name,price; public Goods(String name, String price) { this.name = name; this.price = price; } public void setName(String name) { this.name = name; } public void setPrice(String price) { this.price = price; } public String getName() { return name; } public String getPrice() { return price; } @Override public String toString() { return "Goods{" + "name='" + name + '\'' + ", price='" + price + '\'' + '}'; } }
主页面myactivity
package com.example.sanzhouui; import android.content.Intent; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationSet; import android.view.animation.ScaleAnimation; import android.view.animation.TranslateAnimation; import android.widget.ImageView; public class MainActivity extends AppCompatActivity { private ImageView img; int counrt = 0; Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); counrt++; if (counrt==2){ Intent intent = new Intent(MainActivity.this,ErActivity.class); startActivity(intent); } sendEmptyMessageDelayed(0,1000); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); img = (ImageView) findViewById(R.id.iv_img); getscale(); handler.sendEmptyMessageDelayed(0,1000); } public void getscale() { ScaleAnimation animation = new ScaleAnimation(2f, 0f, 2f, 0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); animation.setDuration(2000); animation.setRepeatCount(Animation.INFINITE); TranslateAnimation animation2 = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, 1f, Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, 0f); animation2.setDuration(2000); animation2.setRepeatCount(Animation.INFINITE); AnimationSet set = new AnimationSet(false); set.addAnimation(animation); set.addAnimation(animation2); img.startAnimation(set); } }
第二个界面
package com.example.sanzhouui; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import java.util.ArrayList; /** * Created by asus on 2017/9/1. */ public class ErActivity extends AppCompatActivity { private ArrayList<Goods> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.er_activity); final ListView lv = (ListView) findViewById(R.id.listview_lv); initData(); lv.setAdapter(new MyAdapter()); //编写listview的滚动监听器,并设置给ListView 编写滚动监听器的业务逻辑,实现ListView滚动到最后一行,加载更多数据 lv.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView absListView, int i) { } @Override public void onScroll(AbsListView absListView, int i, int i1, int i2) { if (i + i1 == i2 && i2 > 0) { TextView tv = new TextView(ErActivity.this); tv.setText("Holle"); lv.addFooterView(tv); } } }); } //添加数据 private void initData() { list = new ArrayList<>(); for (int i = 0; i < 10; i++) { Goods bean = new Goods("小米" + i, "1500" + i); list.add(bean); if (i >= 5) { Goods bean2 = new Goods("华为" + i, "2000" + i); list.add(bean2); } } } class MyAdapter extends BaseAdapter { @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int i, View convertView, ViewGroup viewGroup) { ViewHoler holder; if (convertView == null) { holder = new ViewHoler(); convertView = View.inflate(ErActivity.this, R.layout.item, null); holder.iv = (ImageView) convertView.findViewById(R.id.i_img); holder.name = (TextView) convertView.findViewById(R.id.t_name); holder.price = (TextView) convertView.findViewById(R.id.t_price); convertView.setTag(holder); } else { holder = (ViewHoler) convertView.getTag(); } holder.iv.setImageResource(R.mipmap.ic_launcher); holder.name.setText(list.get(i).getName()); holder.price.setText(list.get(i).getPrice()); return convertView; } class ViewHoler { TextView name, price; ImageView iv; } } }
相关文章推荐
- android适配器及监听点击和滚动在ListView中的使用
- Android SimpleAdapter应用介绍,代码+解释 ListView使用+滚动监听用scoll
- Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向
- Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向
- Android的ExpandableListView的动画展开效果和使用traceview的性能优化
- Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向 推荐
- listView中监听冲突问题(以及view里tag的使用)
- Android使用缓存优化ListView
- android TraceView使用以及listview 的性能优化测试(二)
- 精确监听AbsListView滚动至底部
- 使用浏览器原生函数优化动画
- Android使用缓存优化ListView
- 监听ListView滚动到最底部
- GridView翻页(精确监听AbsListView滚动至底部
- 接上篇的Adapter的优化 Handler和Thread使用
- 优化ListView使之滚动更平滑
- Android使用缓存优化ListView
- GridView翻页(精确监听AbsListView滚动至底部)
- Android使用缓存优化ListView
- ListView重写Adapter优化上下滚动响应速度