本文主要是介绍Android音视频任务列表之(一)——在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 View,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一.使用ImageView绘制图片
1.在布局文件中添加ImageView控件
<ImageViewandroid:id="@+id/imageView"android:layout_width="120dp"android:layout_height="120dp"/>
2.在Activity中找到控件并设置图片
imageView= findViewById(R.id.imageView);imageView.setImageResource(R.drawable.girl);
二.使用SurfaceView绘制图片
1.在布局文件中添加CustomSurfaceView控件
<com.ry.question1.CustomSurfaceViewandroid:layout_width="120dp"android:layout_height="120dp"/>
2.主要代码
private void initView() {mHolder=getHolder();mHolder.addCallback(this);setFocusable(true);setFocusableInTouchMode(true);this.setKeepScreenOn(true);}public CustomSurfaceView(Context context, AttributeSet attrs) {super(context, attrs);initView();}@Overridepublic void surfaceCreated(@NonNull SurfaceHolder holder) {Paint paint = new Paint();paint.setAntiAlias(true);paint.setStyle(Paint.Style.STROKE);BitmapDrawable bd = (BitmapDrawable) getResources().getDrawable(R.drawable.girl);Bitmap bitmap = bd.getBitmap();Canvas canvas = holder.lockCanvas(); // 先锁定当前surfaceView的画布canvas.drawBitmap(bitmap, 0, 0, paint); //执行绘制操作holder.unlockCanvasAndPost(canvas); // 解除锁定并显示在界面上}
三.使用自定义view绘制图片
1.布局
<com.ry.question1.CustomViewandroid:layout_width="120dp"android:layout_height="120dp"/>
2.主要代码
@Overrideprotected void onDraw(Canvas canvas) {Paint paint = new Paint();paint.setAntiAlias(true);paint.setStyle(Paint.Style.STROKE);BitmapDrawable bd = (BitmapDrawable) getResources().getDrawable(R.drawable.girl);Bitmap bitmap = bd.getBitmap();// 方式二:// Bitmap bitmap = BitmapFactory.decodeFile("/storage/emulated/0/wuqian.jpg"); // 获取bitmapcanvas.drawBitmap(bitmap, 0, 0, paint); //执行绘制操作super.onDraw(canvas);}
四.显示效果
这篇关于Android音视频任务列表之(一)——在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 View的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!