TextView组合控件封装
2017-08-16 本文已影响0人
Ayres
Paste_Image.png
每个应用都有个人中心,可能其他页面也有类似,如果每个页面都去写比较麻烦,我们可以封装为一个控件使用
一、先上布局
<?xml version="1.0" encoding="utf-8"?>
<com.zhy.autolayout.AutoRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:background="@color/white"
android:layout_height="90px">
<TextView
android:id="@+id/m_tv_infoname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="30px"
android:text="订单编号"
android:textColor="@color/login_line_focus"
android:textSize="28px" />
<TextView
android:id="@+id/m_tv_infovalue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/iv_you"
android:layout_marginRight="20px"
android:ellipsize="end"
android:maxLength="35"
android:singleLine="true"
android:textColor="@color/login_line_focus"
android:textSize="28px" />
<ImageView
android:id="@+id/iv_you"
android:src="@mipmap/you"
android:layout_marginRight="30px"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</com.zhy.autolayout.AutoRelativeLayout>
二、自定义属性
<!-- 自定义view-->
<declare-styleable name="InfoTextView">
<attr name="leftname" format="string" /> <!-- format : 类型 -->
<attr name="righttext" format="string" /> <!-- format : 类型 -->
</declare-styleable>
三、自定义view
public class InfoTextView extends RelativeLayout {
TextView m_tv_ordername;
TextView m_tv_ordervalue;
public InfoTextView(Context context) {
super(context);
initView(context);
}
public InfoTextView(Context context, AttributeSet attrs) {
super(context, attrs);
initView(context);
TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.InfoTextView);
m_tv_ordername.setText(ta.getString(R.styleable.InfoTextView_leftname));
m_tv_ordervalue.setText(ta.getString(R.styleable.InfoTextView_righttext));
}
public InfoTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView(context);
}
private void initView(Context context) {
// TODO Auto-generated method stub
View.inflate(context, R.layout.m_infotext, this);
m_tv_ordername = (TextView) findViewById(R.id.m_tv_infoname);
m_tv_ordervalue = (TextView) findViewById(R.id.m_tv_infovalue);
}
//设置内容
public void setMTVtext(String mvalue)
{
m_tv_ordervalue.setText(mvalue);
}
public String getMTVtext()
{
return m_tv_ordervalue.getText().toString().trim();
}
}
四、使用
<com.yaolai.client.view.InfoTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:leftname="姓名"
app:righttext="张三"/>
就会实现如下效果
Paste_Image.png