Android动态封装圆角,按下效果的背景

/**

* @param RADIUS
*            角度
* @param normalFileName
*            正常颜色
* @param pressFileName
*            点击颜色
* @param type
*            -1:left 0:center 1:right 2:四角圆角
* @return
*/
public static StateListDrawable addDrawable(int RADIUS, int normalFileName,
int pressFileName, int type) {
StateListDrawable sd = new StateListDrawable();


if (RADIUS != 0) {
float[] float1 = null;


if (type == -1) {
float1 = new float[] { 0, 0, 0, 0, 0, 0, RADIUS, RADIUS };


} else if (type == 0) {
float1 = new float[] { 0, 0, 0, 0, 0, 0, 0, 0 };


} else if (type == 1) {
float1 = new float[] { 0, 0, 0, 0, RADIUS, RADIUS, 0, 0 };


} else if (type == 2) { // 设置四个角为圆角
float1 = new float[] { RADIUS, RADIUS, RADIUS, RADIUS, RADIUS,
RADIUS, RADIUS, RADIUS };


} else {
float1 = new float[] { 0, 0, 0, 0, RADIUS, RADIUS, RADIUS,
RADIUS };
}


GradientDrawable gd = new GradientDrawable();
gd.setCornerRadii(float1);
gd.setColor(normalFileName);
GradientDrawable gd2 = new GradientDrawable();
gd2.setCornerRadii(float1);
gd2.setColor(pressFileName);


int pressed = android.R.attr.state_pressed;
int window_focused = android.R.attr.state_window_focused;
int focused = android.R.attr.state_focused;
int selected = android.R.attr.state_selected;
sd.addState(new int[] { pressed, window_focused }, gd2);
sd.addState(new int[] { pressed, -focused }, gd2);
sd.addState(new int[] { selected }, gd2);
sd.addState(new int[] { focused }, gd2);
sd.addState(new int[] {}, gd);
return sd;


} else {
GradientDrawable gd = new GradientDrawable();
gd.setColor(normalFileName);
GradientDrawable gd2 = new GradientDrawable();
gd2.setColor(pressFileName);
int pressed = android.R.attr.state_pressed;
int window_focused = android.R.attr.state_window_focused;
int focused = android.R.attr.state_focused;
int selected = android.R.attr.state_selected;
sd.addState(new int[] { pressed, window_focused }, gd2);
sd.addState(new int[] { pressed, -focused }, gd2);
sd.addState(new int[] { selected }, gd2);
sd.addState(new int[] { focused }, gd2);
sd.addState(new int[] {}, gd);
return sd;
}


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android中使用OkHttp进行网络请求的封装可以通过以下几个步骤实现: 1. 首先,确保你的项目已经添加了OkHttp的依赖,并且已经在AndroidManifest.xml文件中添加了网络权限。 2. 创建一个封装类,例如OkHttpUtils,用于封装OkHttp的相关操作。 3. 在封装类中,可以定义一些常用的请求方法,例如GET请求、POST请求、上传文件、下载文件等。其中,可以使用OkHttpClient来创建一个OkHttp的实例。 4. 对于GET请求,可以使用Request.Builder来构建请求,指定请求的URL,并通过okHttpClient.newCall(request)来创建一个Call对象。 5. 对于POST请求,可以使用FormBody来构建请求参数,然后通过Request.Builder指定请求的URL和请求体。 6. 对于上传文件,可以使用MultipartBody来构建请求体,并通过addFormDataPart()方法添加文件参数和字段参数。 7. 对于下载文件,可以通过ResponseBody获取输入流,并将输入流写入到本地文件中。 8. 在请求的回调方法中,可以处理请求成功和失败的情况。在onResponse方法中,可以获取服务器返回的数据,并在子线程中进行处理。在onFailure方法中,可以处理请求失败的情况。 9. 如果需要更新UI,可以使用runOnUiThread方法来执行UI更新操作。 综上所述,Android中使用OkHttp进行网络请求的封装可以通过以上步骤实现。可以根据具体需求进行相应的封装和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值