一、图片自适应占满
二、文字设定两行,超出两行在后面添加省略号
三、段落间距
package com.example.dangjiano;import androidx.appcompat.app.AppCompatActivity;import androidx.core.content.ContextCompat;import android.content.Context;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.text.SpannableString;import android.text.Spanned;import android.text.style.ImageSpan;import android.widget.TextView;import java.util.ArrayList;import java.util.List;public class DetailPageActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_detail_page); } public static void setParagraphSpacing(Context context, TextView tv, String content, int paragraphSpacing, int lineSpacingExtra) { if (!content.contains("\n")) { tv.setText(content); return; } content = content.replace("\n", "\n\r"); int previousIndex = content.indexOf("\n\r"); //记录每个段落开始的index,第一段没有,从第二段开始 List<Integer> nextParagraphBeginIndexes = new ArrayList<>(); nextParagraphBeginIndexes.add(previousIndex); while (previousIndex != -1) { int nextIndex = content.indexOf("\n\r", previousIndex + 2); previousIndex = nextIndex; if (previousIndex != -1) { nextParagraphBeginIndexes.add(previousIndex); } } //获取行高(包含文字高度和行距) float lineHeight = tv.getLineHeight(); //把\r替换成透明长方形(宽:1px,高:字高+段距) SpannableString spanString = new SpannableString(content); Drawable d = ContextCompat.getDrawable(context, R.drawable.paragraph_space); float density = context.getResources().getDisplayMetrics().density; //int强转部分为:行高 - 行距 + 段距 d.setBounds(0, 0, 1, (int) ((lineHeight - lineSpacingExtra * density) / 1.2 + (paragraphSpacing - lineSpacingExtra) * density)); for (int index : nextParagraphBeginIndexes) { // \r在String中占一个index spanString.setSpan(new ImageSpan(d), index + 1, index + 2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } tv.setText(spanString); }}
四、行间距
五、取消radio前面的圆圈
1.布局取消,并不能真正意义上的取消<br /><br /> 2.逻辑取消,实现真正的取消
LinearLayoutCompat.LayoutParams params = new LinearLayoutCompat.LayoutParams (ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); LinearLayout ll = (LinearLayout) findViewById(R.id.activity_main); RadioButton button = new RadioButton(this); button.setText("这是代码创建的RadioButton");// button.setButtonDrawable(new ColorDrawable(Color.TRANSPARENT)); //取消圆圈 button.setButtonDrawable(0); //取消圆圈方式2 ll.addView(button, params); }
六、设置布局和文件:
1.可见(visible):
xml文件:android:visibility="visible"<br /> java代码:view.setVisibility(View.VISIBLE);
2.不可见(invisible):
xml文件:android:visibility="invidible"<br /> java代码:view.setVisibility(View.INVISIBLE);
3.隐藏(GONE):
xml文件:android:visibility="gone"<br /> java代码:view.setVisibility(View.GONE);