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

android实现图片与背景的圆角

2017-12-11 11:45 393 查看
package one.bw.com.jingdong.shouye.frame;

import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;

import one.bw.com.jingdong.R;

/**
* Created by Administrator on 2017/12/4/004.
*/

public class FraMy extends Fragment {

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.wode, container, false);
LinearLayout wodeRelativeLayout = view.findViewById(R.id.wodeRelativeLayout);

Drawable drawable = getResources().getDrawable(R.drawable.normal_regbg);//获取本地背景图
BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;//强转BitmapDrawable

Bitmap bitmap = bitmapDrawable.getBitmap();
BitmapDrawable bbb = new BitmapDrawable(toRoundCorner(bitmap, 300));//修改背景图调用toRoundCorner()方法

wodeRelativeLayout.setBackgroundDrawable(bbb);//将修改后的图片设置进入
return view;
}

private Bitmap toRoundCorner(Bitmap bitmap, int i) {

Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final int color = Color.WHITE;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
final RectF rectF = new RectF(rect);
final float roundPx = i;
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}
}
xml布局
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/wodeRelativeLayout">

</LinearLayout>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: