package com.lonshin.chexiaodi.utils; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.RelativeLayout; import com.krislq.sliding.R; public class ClickableCornerLayout extends RelativeLayout implements OnTouchListener { public ClickableCornerLayout(Context context) { super(context); } public ClickableCornerLayout(Context context, AttributeSet attrs) { super(context, attrs); this.setBackgroundResource(R.drawable.table_style);//这里也可以set成ARGB颜色 setOnTouchListener(this); setClickable(true); } public ClickableCornerLayout(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); this.setBackgroundResource(R.drawable.table_style); setOnTouchListener(this); setClickable(true); } @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { this.setBackgroundResource(R.drawable.table_style_dedede); } else if (event.getAction() == MotionEvent.ACTION_UP) { this.setBackgroundResource(R.drawable.table_style); } return false; } }
可如上自定义一个Layout.
想让一个widget圆角等,可定义一个shape文件,然后再设置background="@drawable/xxxxxx"
shape文件需要以下几个内容:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="6.0dp"/> <solid android:color="#ffffff"/> <stroke android:width="1dp" android:color="#cccccc"/> </shape>
按钮需要selector文件,同样需要backround="@drawable/xxxx"
<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/btn_call_s_hit" /> <!-- pressed --> <item android:state_focused="true" android:drawable="@drawable/btn_call_s" /> <!-- focused --> <item android:drawable="@drawable/btn_call_s" /> <!-- default --> </selector>