TextView设置SpannableString 添加图片和点击事件(仿微信点赞列表)

1

TextView设置SpannableString 添加图片和点击事件(仿微信点赞列表)

TextView设置SpannableString 添加图片和点击事件(仿微信点赞列表)

在这个例子中,我们将创建一个TextView,用于显示点赞内容。我们将使用SpannableString来添加图片和点击事件。

一、布局文件首先,我们需要在布局文件中定义一个TextView和一个LinearLayout。

```xml

android:layout_height="wrap_content">

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

```

二、Java代码接下来,我们需要在Java代码中实现点赞内容的显示和点击事件。

```javapublic class VoteView extends LinearLayout {

private TextView tvVoteView;

private ListCountrySideInfo.VoteUser voteUsers;

public VoteView(Context context, AttributeSet attrs) {

super(context, attrs);

init();

}

private void init() {

View.inflate(getContext(), R.layout.vote_view, this);

tvVoteView = findViewById(R.id.tv_vote_view);

// 点赞人布局(默认最多显示10个人)

setVoteStr(this, tvVoteView, new ArrayList<>());

}

/

* 点赞人布局(默认最多显示10个人)

*

* @param voteUsers */

public void setVoteStr(View llVoteView, TextView tvVoteView, ListCountrySideInfo.VoteUser voteUsers) {

this.voteUsers = voteUsers;

SpannableString spannableString = new SpannableString("");

for (int i =0; i < Math.min(10, voteUsers.size()); i++) {

CountrySideInfo.VoteUser user = voteUsers.get(i);

// 添加点赞人 String str = "点赞人" + (i +1) + ": " + user.getName() + "

";

spannableString.append(str);

}

tvVoteView.setText(spannableString);

// 添加点击事件 tvVoteView.setOnClickListener(new OnClickListener() {

@Override public void onClick(View v) {

Toast.makeText(getContext(), "点赞人列表", Toast.LENGTH_SHORT).show();

}

});

}

}

```

三、使用示例最后,我们需要在Activity中使用这个控件。

```javapublic class MainActivity extends AppCompatActivity {

@Override protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

VoteView voteView = new VoteView(this, null);

// 点赞人列表 ListCountrySideInfo.VoteUser voteUsers = new ArrayList<>();

voteUsers.add(new CountrySideInfo.VoteUser("张三"));

voteUsers.add(new CountrySideInfo.VoteUser("李四"));

voteUsers.add(new CountrySideInfo.VoteUser("王五"));

voteView.setVoteStr(voteView, null, voteUsers);

// 添加到布局中 LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(

LinearLayout.LayoutParams.MATCH_PARENT,

LinearLayout.LayoutParams.WRAP_CONTENT);

addContentView(voteView, layoutParams);

}

}

```

这样就完成了一个简单的点赞列表控件。

点赞设置

版权声明:除非特别标注,否则均为网络文章,侵权请联系站长删除。

上一篇 记一次微信点赞小网站的事故

下一篇 微信公众号怎么集赞服务器,【微信点赞】_微信怎么点赞如何集赞微信点赞活动新手必备点赞教程...