نمایش عکس canvas در اندروید

یکشنبه 11 تیر 1396

در این مقاله می خواهیم یک عکس را که با استفاده از canvas رسم شده است را در داخل یک imageview برای شما قرار دهیم.با زدن یک دکمه شما می توانید تصویرمورد نظر را به صورت یک canvas نمایش دهید.

نمایش عکس canvas در اندروید

برای نمایش عکس canvas به صورت rotate از تابع canvas.rotate() استفاده می کنید.

کلاس به صورت زیر خواهد بود:

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;


public class MainActivity extends Activity {

 ImageView imageview;
 Button button;
 Bitmap bitmap;
 Canvas canvas;
 Paint paint;
 int ShapePadding = 80;
 Rect rectangleShape;
 int degreesAngle = 35 ;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 
 imageview = (ImageView)findViewById(R.id.imageView1);
 button = (Button)findViewById(R.id.button1);
 
 button.setOnClickListener(new View.OnClickListener() {
 
 @Override
 public void onClick(View v) {
 // TODO Auto-generated method stub
 
 CreateBitmap();

 CreateCanvas();
 
 CreatePaint();
 
 canvas.save(Canvas.MATRIX_SAVE_FLAG);
 
 canvas.rotate(
 degreesAngle,
 canvas.getWidth() / 2,
 canvas.getHeight() / 2
 );
 
 CreateRectangleShape(); 
 
 imageview.setImageBitmap(bitmap);
 
 }
 });
 }
 
 public void CreateBitmap(){
 
 bitmap = Bitmap.createBitmap(
 400,
 300,
 Bitmap.Config.RGB_565
 );
 
 }
 
 public void CreateCanvas(){
 
 canvas = new Canvas(bitmap);

 canvas.drawColor(Color.CYAN);
 
 }
 
 public void CreatePaint(){
 
 paint = new Paint();
 
 paint.setStyle(Paint.Style.FILL);
 
 paint.setColor(Color.BLUE);
 
 paint.setAntiAlias(true);
 
 }
 
 public void CreateRectangleShape()
 {
 canvas.drawRect(
 ShapePadding,
 ShapePadding,
 canvas.getWidth() - ShapePadding,
 canvas.getHeight() - ShapePadding,
 paint
 );

 canvas.restore();
 
 } 
 
}

لایه ی xml به صورت زیر خواهد بود:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:paddingBottom="@dimen/activity_vertical_margin"
 android:paddingLeft="@dimen/activity_horizontal_margin"
 android:paddingRight="@dimen/activity_horizontal_margin"
 android:paddingTop="@dimen/activity_vertical_margin"
 tools:context="com.rotaterectangleshapeoncanvas_android_examples.com.MainActivity" >

 <ImageView
 android:id="@+id/imageView1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_alignParentTop="true"
 android:layout_centerHorizontal="true"
 />

 <Button
 android:id="@+id/button1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_centerHorizontal="true"
 android:layout_centerVertical="true"
 android:text="How to Rotate Rectangle shape on Canvas in android programmatically" />

</RelativeLayout>

خروجی به صورت زیر خواهد بود:

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید