Android笔记(4)TextViewButtonImageView的圆角矩形圆形控件

xiaoxiao2021-02-27  143

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);
转载请注明原文地址: https://www.6miu.com/read-16127.html

最新回复(0)