安卓布局动画

Android动画之布局动画布局动画是针对于ViewGroup使用的,这里用ListView来实现了布局动画的效果。

MainActivity代码:

public class MainActivity extends ActionBarActivity {
    ArrayList<String> list=new ArrayList<String>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ListView lv=(ListView) findViewById(R.id.lv);
        for (int i = 0; i < 30; i++) {
            list.add("aaa"+i);
        }
        lv.setAdapter(new MyAdapter());
        //布局动画管理器
        LayoutAnimationController lac = new LayoutAnimationController(AnimationUtils.loadAnimation(this, R.anim.bb));
        //设置布局动画的顺序,一共有三种
        lac.setOrder(LayoutAnimationController.ORDER_NORMAL);
        //布局动画设置到listview上
        lv.setLayoutAnimation(lac);
        //开启动画
        lv.startLayoutAnimation();
    }
    public class MyAdapter extends BaseAdapter{

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return list.size();
        }

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHander vh=null;
            if (convertView==null) {
                convertView= View.inflate(MainActivity.this, R.layout.aa, null);
                vh= new ViewHander();
                vh.tv=(TextView) convertView.findViewById(R.id.tv);
                convertView.setTag(vh);
            }else{
                vh=(ViewHander) convertView.getTag();
            }
            vh.tv.setText(list.get(position));
            return convertView;
        }
        class ViewHander{
            TextView tv;
        }
    }
}

anim中的动画:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale android:duration="1000"
        android:fromXScale="0.1"
        android:fromYScale="0.1"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.0"
        android:toYScale="1.0"/>
    <alpha android:duration="1000"
        android:fromAlpha="0"
        android:toAlpha="1.0"/>

</set>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BGP(Border Gateway Protocol,边界网关协议)是一种用于在不同自治系统之间交换路由信息的路由协议。BGP协议是TCP/IP协议族中的一种重要协议,是互联网上应用最为广泛的路由协议之一。BGP协议主要应用于ISP之间的路由交换,以及公司内部的大型网络中。 BGP协议的主要特点是: 1. BGP协议是一种路径向量协议,它不仅仅考虑了距离这一因素,还考虑了路径的属性,因此BGP协议可以选择更优的路径。 2. BGP协议可以支持多种类型的路由,包括IPv4、IPv6和多协议BGP(MP-BGP)等。 3. BGP协议采用TCP协议作为传输层协议,因此具有可靠性和稳定性。 4. BGP协议支持多种路由策略,包括路由过滤、路由聚合、路由重分发等,可以更好地控制网络中的路由流量。 BGP协议的工作原理如下: 1. BGP协议通过向相邻的路由器发送UPDATE消息来交换路由信息。UPDATE消息包含了路由器的AS号、网络前缀、AS_PATH属性、NEXT_HOP属性等信息。 2. 当一个路由器收到UPDATE消息时,它会先检查AS_PATH属性,如果发现有自己的AS号,则表示这个路由信息是一个环路,将被丢弃;如果没有,则把这个路由信息添加到自己的路由表中。 3. 如果路由器发现自己的路由表中已经存在相同前缀的路由信息,但是下一跳不同,则根据BGP协议的路径选择算法选择更优的路径,并更新自己的路由表。 4. 当一个路由器发现某个网络无法到达时,会向相邻的路由器发送WITHDRAW消息,告诉它们这个路由不可达。 总之,BGP协议是互联网中最为重要的路由协议之一,它可以有效地控制网络中的路由流量,提高网络的可靠性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值