adapter的布局:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ffffff"
>
<!--对方发送地信息-->
<LinearLayoutandroid:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="10dp"
android:paddingTop="5dp"
android:id="@+id/messagegly"
android:visibility="gone" <!--在这里我设置了布局隐藏,等在代码里设置布局显示-->
>
<ImageView
android:layout_gravity="right"
android:id="@+id/imgPicgl"
android:layout_width="32dip"
android:layout_height="48dip"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/chatfrom_bg_normal"
>
<TextView
android:paddingLeft="45dp"
android:paddingRight="25dp"
android:paddingBottom="30dp"
android:paddingTop="8dp"
android:layout_gravity="center_vertical"
android:id="@+id/gl"
style="@style/ChattingUIText"
/>
</FrameLayout>
<TextView
android:id="@+id/glDate"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:textColor="#ffffff" />
</LinearLayout>
</LinearLayout>
<!--自己发送的信息布局-->
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="5dp"
android:id="@+id/messagept"
android:visibility="gone" <!--设置隐藏-->
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/content"
android:layout_toLeftOf="@+id/imgPicyh"
>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/chatto_bg_normal"
>
<TextView
android:paddingLeft="25dp"
android:paddingRight="45dp"
android:layout_gravity="center_vertical"
android:id="@+id/yh"
style="@style/ChattingUIText"
android:paddingBottom="30dp"
android:paddingTop="8dp"
/>
</RelativeLayout>
<TextView
android:id="@+id/yhDate"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:textColor="#ffffff" />
</LinearLayout>
<ImageView
android:layout_alignParentRight="true"
android:id="@+id/imgPicyh"
android:layout_width="32dip"
android:layout_height="48dip"
/>
</RelativeLayout>
</FrameLayout>
java 代码:
listview里加载的adapter:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ItemHolder itemHolder;
MymessageModel model = list.get(position);
根据type区分对方和自己地消息
if (convertView != null && (itemHolder=(ItemHolder)convertView.getTag()).flag==(Integer.parseInt(model.getType()))) {
itemHolder = (ItemHolder) convertView.getTag();
} else {
itemHolder = new ItemHolder();
convertView = inflater.inflate(R.layout.glmessage, parent, false);
if(model.getType().equals("1")){
LinearLayout layouts=(LinearLayout)convertView.findViewById(R.id.messagegly);
layouts.setVisibility(layouts.VISIBLE);
RelativeLayout relative=(RelativeLayout)convertView.findViewById(R.id.messagept);
relative.setVisibility(relative.GONE);
itemHolder.imgPic = (ImageView) convertView
.findViewById(R.id.imgPicgl);
itemHolder.jl = (TextView) convertView
.findViewById(R.id.gl);
itemHolder.dates = (TextView) convertView
.findViewById(R.id.glDate);
itemHolder.flag=1;
}else if(model.getType().equals("2")){
LinearLayout layouts=(LinearLayout)convertView.findViewById(R.id.messagegly);
layouts.setVisibility(layouts.GONE);
RelativeLayout relative=(RelativeLayout)convertView.findViewById(R.id.messagept);
relative.setVisibility(relative.VISIBLE);
itemHolder.imgPic = (ImageView) convertView
.findViewById(R.id.imgPicyh);
itemHolder.jl = (TextView) convertView
.findViewById(R.id.yh);
itemHolder.dates = (TextView) convertView
.findViewById(R.id.yhDate);
itemHolder.flag=2;
}
convertView.setTag(itemHolder);
}
String picUrl = model.getHeadpic();
itemHolder.imgPic.setTag(picUrl);
imageLoader.addTask(picUrl, itemHolder.imgPic);
imageLoader.doTask();
itemHolder.jl.setText(model.getContent());
itemHolder.dates.setText(model.getOptiondate());
//itemHolder.tvTop.setTag(model);
return convertView;
}
class ItemHolder {
//public TextView tvTop;
public ImageView imgPic;
public TextView jl,dates;
int flag;
}