您的位置:首页 > 移动开发 > Android开发

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

2017-07-10 10:53 661 查看

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐