一、图片自适应占满
二、文字设定两行,超出两行在后面添加省略号
三、段落间距
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);