圆角效果:
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Bitmap.Config;
import android.graphics.PorterDuff.Mode;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.widget.ImageView;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Drawable drawable = getResources().getDrawable(R.drawable.jpg1);
BitmapDrawable bitmapDrawable = (BitmapDrawable)drawable;
Bitmap bitmap = bitmapDrawable.getBitmap();
ImageView imageView = (ImageView)findViewById(R.id.imgShow);
imageView.setImageBitmap(Main.getRoundedCornerBitmap(bitmap));
}
// 将图片的四角圆化
public static Bitmap getRoundedCornerBitmap(Bitmap bitmap) {
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Config.ARGB_8888);
//得到画布
Canvas canvas = new Canvas(output);
//将画布的四角圆化
final int color = Color.RED;
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 = 50;
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
//drawRoundRect的第2,3个参数一样则画的是正圆的一角,如果数值不同则是椭圆的一角
canvas.drawRoundRect(rectF, roundPx,roundPx, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}
}
- 大小: 16.5 KB
分享到:
相关推荐
总结起来,Android实现图片圆角和椭圆效果主要依赖于Bitmap处理和自定义View的绘制。通过理解这些原理和方法,开发者可以灵活地根据项目需求创造出各种形状的图片展示效果。在实际项目中,选择合适的方式取决于性能...
7. **兼容性问题**: 考虑到Android版本的差异,可能需要使用`NinePatch`图或者`android.graphics.drawable.GradientDrawable`来实现圆角效果,以确保在不同版本的Android设备上表现一致。 8. **XML布局支持**: 除了...
总的来说,Android图片圆角化的实现方式多种多样,可以根据项目需求和性能考虑选择合适的方法。自定义`ImageView`虽然灵活性较高,但可能会增加代码复杂性;而利用现有的图片加载库则更简便,但可能牺牲一定的定制性...
首先,Android中实现图片圆角效果主要有以下几种方式: 1. **XML Shape Drawable**: 在XML布局文件中,可以创建一个`<shape>`标签,并设置`<solid>`和`<corners>`属性来实现圆角效果。例如: ```xml ...
此外,Android SDK还提供了一个叫做`CornerTransform`的类,可以用来创建自定义的图片变换效果,包括圆角效果。不过,这个类在API 24及以上版本才可用,对于低版本的兼容性较差。 对于更复杂的圆角处理需求,例如...
"Android图片圆角"这个主题涉及到的技术点主要包括以下几个方面: 1. **自定义View**: 在Android中实现图片圆角效果,通常需要自定义一个ImageView的子类。通过重写`onDraw()`方法,利用Canvas的`drawRoundRect()`...
1. **圆角图片**:在XML drawable中,你可以通过`<corners>`标签设置ImageView的圆角半径,实现圆角效果。例如: ```xml <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:...
在Android开发中,为图片或背景添加圆角效果是一种常见的需求,这可以提升应用的界面美观性和用户体验。本文将深入探讨如何实现图片和背景的半圆角及全圆角效果,并提供源码分析。 首先,要理解Android中实现圆角...
默认情况下,ImageView显示的是矩形图像,但通过自定义ImageView或对Bitmap进行操作,我们可以实现圆角效果。 对于Bitmap图片设置任意角为圆角,一种常见的方法是使用Canvas和Paint进行绘制。首先,我们需要创建一...
Android中经常会遇到对图片进行二次处理,例如加圆角,或者显示圆形图片 实现的效果图: 方法一: ...//图片圆角为30 Glide.with(this).load(URL) //图片地址 .apply(options) .into(ImagView);
在Android中,我们可以使用BitmapShader类来实现图片的圆角效果。BitmapShader是用于对位图进行着色的类,可以设置不同的Shader类型,如TILE_MODE_CLAMP、TILE_MODE_MIRROR等。对于圆角矩形图片,我们可以创建一个...
此外,如果你的应用场景允许,还可以使用Android的内置`android.graphics.drawable.RoundRectDrawable`或者`androidx.appcompat.graphics.drawable.DrawableWrapper`来实现圆角效果,这些内置组件通常更加高效且易于...
对于圆角矩形,我们使用`getMatrixForCornerRadii()`方法来创建一个Matrix,该Matrix将应用于BitmapShader,使得在绘制时应用圆角效果。 `onDraw()`方法中,我们保存了当前的Canvas状态,然后调用父类的`onDraw()`...
1. **BitmapShader**: 使用BitmapShader对象可以将Bitmap应用于画布的画刷,通过设置Shader的TileMode为CLAMP,然后利用Matrix调整Shader的渐变区域,可以实现圆角效果。 2. ** PorterDuffXfermode**: 可以通过...
首先,让我们关注对话框的圆角效果。在Android中,对话框通常由`AlertDialog`或自定义的`DialogFragment`来实现。要让对话框显示为圆形或具有圆角,我们需要自定义布局文件,然后设置这个布局作为对话框的内容视图。...
本篇文章将深入探讨如何使用Picasso在Android应用中实现圆形图片和圆角图片。 首先,我们需要在项目中添加Picasso的依赖。如果你使用的是Gradle构建系统,可以在app模块的build.gradle文件中添加以下依赖: ```...
总结来说,实现Android图片的圆角和圆形效果主要涉及自定义View、Canvas、Path和Bitmap的使用。理解这些基本概念和API是Android图形编程的关键,也是提升应用用户体验的重要手段。通过实践和学习,开发者可以创建出...
通过BitmapShader,我们可以控制图像的显示形状,比如使其呈现圆角效果。 ```java protected void onDraw(Canvas canvas) { super.onDraw(canvas); if (mCornerRadius > 0) { // 创建BitmapShader ...
此外,Android也支持通过设置`clipToOutline`属性来实现圆角效果,但这需要API 21及以上版本支持: ```xml ... android:background="@android:color/transparent" android:outlineProvider="bounds" android:...
本篇文章将深入探讨如何在Android中实现`ImageView`的圆角效果以及图片剪切功能。 ### 一、Android ImageView实现圆角图片 在Android中,让`ImageView`显示圆角图片主要有以下几种方法: 1. **自定义`ImageView`*...