android代码改变圆角背景

在代码中改变圆角背景,需要给空间设置一个默认的背景,要在xml中定义一个shape,如:


   
   

   
   
    
    
    
    
    
    
    
    
    


   
   
控件将其设置为背景


   
   
最后在代码中使用
package com.dxx.shapetest;

import android.content.Context;
import android.graphics.drawable.GradientDrawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    private TextView solid_tv, hollow_tv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        solid_tv = (TextView) findViewById(R.id.solid_tv);
        shapeSolid(this, solid_tv,0);
        hollow_tv = (TextView) findViewById(R.id.hollow_tv);
        shapeSolid(this,hollow_tv,1);
    }

    /**
     * 设置圆角的背景
     *
     * @param context 上下文
     * @param v       View
     */
    public void shapeSolid(Context context, View v, int pos) {
        GradientDrawable gd = (GradientDrawable) v.getBackground();
        int strokeWidth = 1; // 1dp 边框宽度
        int roundRadius = 8; // 8dp 圆角半径
        int strokeColor = 0xffff4984;//边框颜色
        int fillColor = 0xffffffff;//内部填充颜色
        if (pos == 1) {
            strokeColor = 0xff02FF13;//边框颜色
            fillColor = 0xff02FF13;//内部填充颜色
        }
        gd.setColor(fillColor);
        gd.setCornerRadius(dp2px(context, roundRadius));
        gd.setStroke(dp2px(context, strokeWidth), strokeColor);
    }

    /**
     * 根据手机的分辨率dp 转成px(像素)
     */
    public int dp2px(Context context, float dpValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dpValue * scale + 0.5f);
    }
}
最后效果图



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值