Android笔记(4)TextView/Button/ImageView的圆角矩形/圆形控件

TextView/Button/ImageView(圆角矩形)

1.在drawable中创建shape_round文件

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- 设置透明背景色 -->
    <solid android:color="#ffffffff" />

    <!-- 设置一个蓝边框 -->
    <stroke android:width="1dp" android:color="#ff1296db" />
    <corners android:topLeftRadius="2dp"
        android:topRightRadius="2dp"
        android:bottomRightRadius="2dp"
        android:bottomLeftRadius="2dp"/>
    <!-- 设置四个圆角的半径 -->
    <corners
        android:bottomLeftRadius="20px"
        android:bottomRightRadius="20px"
        android:topLeftRadius="20px"
        android:topRightRadius="20px" />
    <!-- 设置一下边距,让空间大一点 -->
    <padding
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp" />

</shape>

2.
(1)Textview

    <TextView
            android:id="@+id/textview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/shape_round_press_false"/>

(2)Button

    <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/shape_round_press_false"/>

ImageView(圆形)

(1)非网络图片
Activity中直接使用

//aim1为图片,可自行更换
public class Activity extends AppCompatActivity {
private ImageView imageView1;
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Bitmap bitmap1 = BitmapFactory.decodeResource(getResources(), R.drawable.aim1);
        RoundedBitmapDrawable circleDrawable1 = RoundedBitmapDrawableFactory.create(getResources(),bitmap1);
        circleDrawable1.getPaint().setAntiAlias(true);
        circleDrawable1.setCornerRadius(Math.max(bitmap1.getWidth(), bitmap1.getHeight()));
        imageView1=(ImageView)findViewById(R.id.imageview);
        imageView1.setImageDrawable(circleDrawable1);
        }
}

(2)网络图片
1.新建CircleTransform.java

import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Paint;
public class CircleTransform implements Transformation {
    public Bitmap transform(Bitmap source) {
        int size = Math.min(source.getWidth(), source.getHeight());
        int x = (source.getWidth() - size) / 2;
        int y = (source.getHeight() - size) / 2;
        Bitmap squaredBitmap = Bitmap.createBitmap(source, x, y, size, size);
        if (squaredBitmap != source) {
            source.recycle();//回收垃圾
        }
        Bitmap bitmap = Bitmap.createBitmap(size, size, source.getConfig());
        Canvas canvas = new Canvas(bitmap);
        Paint paint = new Paint();
        BitmapShader shader = new BitmapShader(squaredBitmap,
                BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP);//定义一个渲染器
        paint.setShader(shader);//设置渲染器
        paint.setAntiAlias(true);//设置抗拒齿,图片边缘相对清楚
        float r = size / 2f;
        canvas.drawCircle(r, r, r, paint);//绘制图形
        squaredBitmap.recycle();
        return bitmap;
    }

    public String key() {
        return "circle";
    }
}

2.Activity中

Picasso.with(context).load("网址").transform(new CircleTransform()).into(imageView);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值