android聊天缩略图位置

时间:2015-02-01 08:18:04

标签: java android

我有一个带有气泡和缩略图用户图片的对话页面,我有缩略图位置的问题:当我发送文字时,缩略图必须显示在右侧,当我的朋友发送文字时,他的缩略图必须显示在左侧

我的XML项目是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" 
    android:padding="5dp" >

    <LinearLayout
        android:id="@+id/wrapper"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="0.5dp" >

        <ImageView
            android:id="@+id/icon"
            android:layout_width="35dp"
            android:layout_height="35dp" 
            android:background="@drawable/user_four"
            android:padding="0dp" />

        <TextView
            android:id="@+id/comment"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_margin="5dip"
            android:textColor="#2e2e2e"
            android:paddingLeft="10dp" />
    </LinearLayout>

</RelativeLayout>

我的Java代码是:

public class ChatArrayAdapter extends ArrayAdapter<Comment> {

    private TextView countryName;
    private List<Comment> countries = new ArrayList<Comment>();
    private LinearLayout wrapper;


    @Override
    public void add(Comment object) {
        countries.add(object);
        super.add(object);
    }

    public ChatArrayAdapter(Context context, int textViewResourceId) {
        super(context, textViewResourceId);
    }

    public int getCount() {
        return this.countries.size();
    }

    public Comment getItem(int index) {
        return this.countries.get(index);
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        View row = convertView;
        if (row == null) {
            LayoutInflater inflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            row = inflater.inflate(R.layout.listitem_chat, parent, false);
        }

        wrapper = (LinearLayout) row.findViewById(R.id.wrapper);

        Comment coment = getItem(position);

        countryName = (TextView) row.findViewById(R.id.comment);

        countryName.setText(coment.comment);

        countryName.setBackgroundResource(coment.left ? R.drawable.other_bubble : R.drawable.own_bubble);
        wrapper.setGravity(coment.left ? Gravity.LEFT : Gravity.RIGHT);


        return row;
    }

    public Bitmap decodeToBitmap(byte[] decodedByte) {
        return BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length);
    }

}

2 个答案:

答案 0 :(得分:1)

如果您在getView()方法中知道文本是您的朋友或您的朋友,则可以根据条件将线性布局的重力属性更改为左侧或右侧。

答案 1 :(得分:0)

左右使用单独的布局,然后在获取视图中使用正确的布局对其进行充气