android 实现自定义组件
2014-03-15 22:54
302 查看
android开发中,对于复用率较高的多个控件,采用组件的方式可能更加方便,首先定义一个xml文件:
文件名:lyt_customer_service_phone.xml
然后在java代码中创建一个自定义视图,并且引用它:
文件名:CustomerServicePhone.java
这样我们就创建成功了,实现了一个包含图片的textview,点击即可拨打电话的组件,下面我们在xml中引用它:
这样我们在java代码中,就不需要每次去定义这个视图的动作了,实现了一个地方定义,多个地方引用的目的。
文件名:lyt_customer_service_phone.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="25dp" android:layout_gravity="center_horizontal" android:background="@drawable/person_center_block_bg_frame" > <ImageView android:layout_width="25.5dp" android:layout_height="25dp" android:layout_marginRight="10dp" android:src="@drawable/personal_center_call_image" /> <TextView android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_marginRight="10dp" android:gravity="center" android:text="客服电话:4006601360" android:textColor="@color/g333333" android:textScaleX="1.05" android:textSize="16sp" /> </LinearLayout>
然后在java代码中创建一个自定义视图,并且引用它:
文件名:CustomerServicePhone.java
package cn.czl.view; import cn.czl.R; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; public class CustomerServicePhone extends LinearLayout { public CustomerServicePhone(final Context context, AttributeSet attrs) { super(context, attrs); ((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate( R.layout.lyt_customer_service_phone, this); setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { context.startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:4006601360"))); } }); } public CustomerServicePhone(Context context) { super(context); } }
这样我们就创建成功了,实现了一个包含图片的textview,点击即可拨打电话的组件,下面我们在xml中引用它:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#e8e8e8" android:orientation="vertical" > <RelativeLayout android:id="@+id/title_bar" android:layout_width="fill_parent" android:layout_height="@dimen/top_bar_height" android:background="#FFFFFF" android:gravity="center_vertical" > <RelativeLayout android:id="@+id/title_bar_menu_btn" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:background="#FFFFFF" android:orientation="vertical" > <ImageView android:layout_width="28dp" android:layout_height="28dp" android:layout_alignParentTop="true" android:layout_marginTop="5dp" android:src="@drawable/topbar_back_selector" /> <TextView android:layout_width="28dp" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_gravity="center_horizontal" android:layout_marginBottom="6.5dp" android:gravity="center" android:text="返回" android:textColor="#333333" android:textSize="12sp" /> </RelativeLayout> <TextView android:id="@+id/title_bar_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:ellipsize="end" android:gravity="center" android:paddingLeft="75.0dip" android:paddingRight="75.0dip" android:singleLine="true" android:text="我的课程" android:textColor="#333333" android:textSize="16sp" /> </RelativeLayout> <cn.czl.view.CustomerServicePhone android:id="@+id/lyt_customer_service_phone" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_marginBottom="29dp" android:layout_marginLeft="72.5dp" android:layout_marginRight="73dp" android:layout_marginTop="20dp" /> </RelativeLayout>
这样我们在java代码中,就不需要每次去定义这个视图的动作了,实现了一个地方定义,多个地方引用的目的。
相关文章推荐
- Android自定义View设定到FrameLayout布局中实现多组件显示
- Android自定义组件系列【3】自定义ViewGroup实现侧滑
- android自定义组件实现方法
- android 让TextView支持的Html标签实现自定义时钟显示组件DigitalClock
- Android 自定义组件之如何实现自定义组件
- Android 自定义view(二) 如何实现自定义组件
- Android 三档自定义滑动开关,禁止点击功能的实现,用默认的seekbar组件实现
- Android 自定义组件成JAR包的实现方法
- Android实现Ant Design 自定义表单组件
- Android 实例:通过自定义View组件实现跟随手指移动的小兔子
- Android自定义组件系列【15】——四个方向滑动的菜单实现
- Android自定义组件系列【4】——自定义ViewGroup实现双侧滑动
- Android自定义组件<实现可重用性与可扩展性>
- Android自定义组件系列【15】——四个方向滑动的菜单实现
- android三档自定义滑动开关,禁止点击功能的实现,用默认的seekbar组件实现
- Android自定义组件系列【3】——自定义ViewGroup实现侧滑
- Android自定义组件系列【4】——自定义ViewGroup实现双侧滑动
- Android自定义组件之日历控件-精美日历实现(内容、样式可扩展)
- Android 自定义RecyclerView (替代ListView的最新组件)实现真正的Gallery效果
- Android自定义组件系列【3】——自定义ViewGroup实现侧滑