我正在使用线性布局从.net服务器获取带有图像的消息.
当出现新消息时,将增加布局的位置,并将新消息一一添加到布局的顶部.
问题是新消息何时出现,新消息突然添加到布局中.
我想将动画应用于布局,并使我的应用程序像收到新消息时一样,将消息缓慢添加到布局中.意味着先前的消息缓慢向下移动,新消息被添加到布局顶部.
解决方法:
在linearLayout上使用android:animateLayoutChanges来保存数据.添加新内容时,这将触发动画.首先,将旧数据向下移动,为更多内容腾出空间.然后进行第二步,新数据将淡入空闲空间.
范例程式码
main.xml
<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:ID="@+ID/baseLL" androID:orIEntation="vertical" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent"> <!-- button used to add data --> <button androID:layout_wIDth="192dip" androID:layout_height="wrap_content" androID:layout_gravity="center_horizontal" androID:text="Add Content" androID:onClick="onAddContentClick" /> <!-- button used to remove data --> <button androID:layout_wIDth="192dip" androID:layout_height="wrap_content" androID:layout_gravity="center_horizontal" androID:text="Remove Content" androID:onClick="onRemoveContentClick" /> <!-- data will be added to this linearLayout at run time --> <linearLayout androID:ID="@+ID/dataLL" androID:orIEntation="vertical" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:animateLayoutChanges="true" > </linearLayout></linearLayout>
basicanimation.java
package com.test.animation.basic;import androID.app.Activity;import androID.os.Bundle;import androID.vIEw.VIEw;import androID.Widget.linearLayout;import androID.Widget.linearLayout.LayoutParams;import androID.Widget.TextVIEw;public class BasicAnimationActivity extends Activity { /** Called when the activity is first created. */ @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); } public voID onAddContentClick(VIEw v) { linearLayout dataLL = (linearLayout) findVIEwByID(R.ID.dataLL); int dataCount = dataLL.getChildCount(); TextVIEw newDataTV = generateData(dataCount); dataLL.addVIEw(newDataTV, 0); } public voID onRemoveContentClick(VIEw v) { linearLayout dataLL = (linearLayout) findVIEwByID(R.ID.dataLL); if (dataLL.getChildCount() > 0) { dataLL.removeVIEwAt(0); } } private TextVIEw generateData(int dataCount) { TextVIEw TV = new TextVIEw(this); TV.setText("Data " + dataCount); TV.setLayoutParams(new LayoutParams(androID.vIEw.VIEwGroup.LayoutParams.FILL_PARENT, androID.vIEw.VIEwGroup.LayoutParams.WRAP_CONTENT)); return TV; }}
总结 以上是内存溢出为你收集整理的android-如何将动画添加到线性布局?全部内容,希望文章能够帮你解决android-如何将动画添加到线性布局?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)