主界面 public class MainActivity extends AppCompatActivity implements MyCustomActionBar.OnIconClickListener { private MyCustomActionBar myCustomActionBar; @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myCustomActionBar = (MyCustomActionBar) findViewById(R.id.my_action_bar); myCustomActionBar.SetOnIconClickListener(this); } @Override public void OnIconClick(View icon) { startActivity(new Intent(this,SecondActivity.class)); } }跳转到第二个界面: public class SecondActivity extends AppCompatActivity implements MyCustomActionBar.OnIconClickListener { private MyCustomActionBar myCustomActionBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second); myCustomActionBar = (MyCustomActionBar) findViewById(R.id.my_action_bar); myCustomActionBar.SetOnIconClickListener(this); } @Override public void OnIconClick(View icon) { finish(); } }自定义类:public class MyCustomActionBar extends LinearLayout { private RelativeLayout relativeLayout; private TextView biaoti; private ImageView img; private TypedArray typedArray; private int bgcolor; private int textcolor; private float size; private String text; private Drawable drawable; public MyCustomActionBar(Context context) { super(context); initView(context, null); } public MyCustomActionBar(Context context, @Nullable AttributeSet attrs) { super(context, attrs); initView(context, attrs); } private void initView(Context context, AttributeSet attrs) { View inflate = inflate(context, R.layout.my_action_bar_layout, this); relativeLayout = (RelativeLayout) inflate.findViewById(R.id.container); biaoti = (TextView) inflate.findViewById(R.id.biaoti); img = (ImageView) inflate.findViewById(R.id.img); img.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(mOnIconClickListener != null){ mOnIconClickListener.OnIconClick(v); } } }); if (attrs == null) { return; } initAttrs(context,attrs); setViewContent(); } private void initAttrs(Context context, AttributeSet attrs) { if (attrs == null) { return; } typedArray = context.obtainStyledAttributes(attrs, R.styleable.MyCustomActionBar); bgcolor = typedArray.getColor(R.styleable.MyCustomActionBar_action_bar_bg_color, Color.GRAY); textcolor = typedArray.getColor(R.styleable.MyCustomActionBar_action_bar_title_text_color, Color.RED); size = typedArray.getDimension(R.styleable.MyCustomActionBar_action_bar_title_text_size, 16); text = typedArray.getString(R.styleable.MyCustomActionBar_action_bar_title_text); drawable = typedArray.getDrawable(R.styleable.MyCustomActionBar_action_bar_icon_src); } public void setViewContent(){ relativeLayout.setBackgroundColor(bgcolor); img.setImageDrawable(drawable); biaoti.setText(text); biaoti.setTextColor(textcolor); biaoti.setTextSize(size); } private OnIconClickListener mOnIconClickListener; public interface OnIconClickListener { void OnIconClick(View icon); } public void SetOnIconClickListener(OnIconClickListener onIconClickListener) { mOnIconClickListener = onIconClickListener; } }attrs:<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="MyCustomActionBar"> <attr name="action_bar_bg_color" format="color" /> <attr name="action_bar_title_text_color" format="color" /> <attr name="action_bar_title_text_size" format="dimension" /> <attr name="action_bar_title_text" format="string" /> <attr name="action_bar_icon_src" format="reference" /> </declare-styleable> </resources>
自定义布局文件:<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="80dp" android:background="@color/colorAccent"> <ImageView android:layout_marginLeft="12dp" android:id="@+id/img" android:layout_width="60dp" android:layout_height="60dp" android:layout_centerVertical="true" android:src="@mipmap/ic_launcher" /> <TextView android:id="@+id/biaoti" android:layout_width="wrap_content" android:layout_height="60dp" android:layout_centerInParent="true" android:layout_centerVertical="true" android:gravity="center" android:src="@mipmap/ic_launcher" android:text="标题" /> </RelativeLayout>主界面布局文件:<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.fairy.day03.MainActivity"> <com.fairy.day03.MyCustomActionBar android:id="@+id/my_action_bar" android:layout_width="match_parent" android:layout_height="80dp" app:action_bar_bg_color="@color/colorAccent" app:action_bar_icon_src="@drawable/brad_pitt" app:action_bar_title_text="MainActivity" app:action_bar_title_text_color="@color/colorPrimaryDark" app:action_bar_title_text_size="16dp" > </com.fairy.day03.MyCustomActionBar> </RelativeLayout>
自定义标题栏
最新推荐文章于 2024-07-22 17:10:44 发布