做商城开发的时候,价格中间线。展示一下我做的Demo
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<TextView
android:textSize="35px"
android:layout_marginTop="30px"
android:paddingStart="40px"
android:drawableLeft="@drawable/miaosha_money_sysmbol"
android:id="@+id/textView_mprice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
android:alpha="0.7"
android:background="#FF00FF"
/>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView
android:textSize="35px"
android:layout_marginTop="30px"
android:paddingStart="40px"
android:id="@+id/textView_jdprice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
android:alpha="0.7"
android:background="#FF00FF"
/>
<ImageView
android:layout_marginLeft="50px"
android:layout_marginTop="42px"
android:layout_width="21px"
android:layout_height="24px"
android:background="@drawable/miaosha_money_sysmbol"
/>
</FrameLayout>
<TextView
android:textSize="35px"
android:layout_marginTop="30px"
android:paddingStart="40px"
android:id="@+id/textView_spandImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
android:alpha="0.7"
android:background="#FF00FF"
/>
</LinearLayout>
MainActivity.java
public class MainActivity extends Activity {
private Context mContext;
private TextView price_textView;
private TextView price_jdTextView;
private TextView price_stextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext = MainActivity.this;
findByid();
// 第一种方式 只有文字 中间线
price_textView.setText("1234");
price_textView.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
// 第二种方式 文字和图片 中间线
String text = "567809908328";
price_jdTextView.setText(" "+text+" ");
price_jdTextView.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
// 第二种方式 文字和图片混合排版
addSpanImage(); // SpannableImage
}
private void findByid() {
price_textView = (TextView) findViewById(R.id.textView_mprice);
price_jdTextView = (TextView) findViewById(R.id.textView_jdprice);
price_stextView = (TextView) findViewById(R.id.textView_spandImage);
}
private void addSpanImage(){
SpannableString ss = new SpannableString("1234567890");
Drawable d = getResources().getDrawable(R.drawable.miaosha_money_sysmbol);
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
//创建ImageSpan
ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
//用ImageSpan替换文本
ss.setSpan(span, 2, 4, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
price_stextView.setText(ss);
}
}
运行的结果