آینه کردن تصویر+سورس

به نام خدا،در این آموزش از سری آموزش های پردازش تصویر در برنامه نویسی اندروید،می خواهیم با Mirror Image یا آینه کردن تصویر آشنا بشیم.برای شروع کار ابتدا یک پروژه جدید ایجاد می کنیم،داخل لایه برنامه یا activity_main.xml از یک دکمه و یک Image View استفاده میکنیم.(کدهای کامل لایه activity_main.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=".MainActivity" >

<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Mirror Image"/>

<ImageView
android:id="@+id/ImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button"
android:layout_below="@+id/button"
android:src="@drawable/snowman" />

</RelativeLayout>

بعد از اینکه لایه برنامه رو تکمیل کردیم میریم سراغ کلاس MainActivity.java و نوشتن کدهای جاوا برنامه.در داخل این کلاس از دو تغییر با نوع int یا عدد صحیح استفاده کرده ایم.یکی از متغیر ها به نام  FLIP_VERTICAL با مقدار 1 و دیگری FLIP_HORIZONTAL با مقدار 2.ما از مقدار عدد 1 برای برگرداندن تصویر به حالت عمودی (VERTICAL) و از مقدار عدد 2 برای بازگرداندن به حات افقی (HORIZONTAL)استفاده می کنیم.سپس یک دکمه Button را معرفی و براش یک رویداد کلیک می نویسیم تا زمانی که روش کلیک شد کدهای تابع  flipImage  رو اجرا کنه.تابع flipImage یک مقدار رو از متغیر های ما میگیره و بر اساس تصویر دریافتی کار Mirror Image  یا آینه کردن رو انجام میده.می بینید که من مقدار عددی دستور   imViewAndroid.setImageBitmap(flipImage(BitmapFactory.decodeResource(getResources(), R.drawable.snowman), 2)) رو 2 قرار دادم ، به معنی این است که  تصویر من رو به حالت  HORIZONTAL یا افقی برگردان.(کدهای کلاس MainActivity).

 /*
* appinapps.com
* آموزش برنامه نویسی
* از مبتدی تا پیشرفته
*/
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;



public class MainActivity extends Activity {

ImageView imViewAndroid;

//ایجاد دو متغییر از نوع عدد صحیح یا int
public static final int FLIP_VERTICAL = 1;
public static final int FLIP_HORIZONTAL = 2;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//فراخوانی دکمه از لایه و ایجاد یک رویداد کلیک برای آن
Button b1 = (Button) findViewById(R.id.button);

b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//با کلیک روی دکمه دستورات زیر اجرا می شود
imViewAndroid = (ImageView) findViewById(R.id.ImageView);
imViewAndroid.setImageBitmap(flipImage(BitmapFactory.decodeResource(getResources(),  R.drawable.snowman), 2));
}
});
}

public Bitmap flipImage(Bitmap src, int type) {
//ساختن ماتریکس جدید برای تبدیل
Matrix matrix = new Matrix();
//اگر برگرداندن در حالت عمودی
if(type == FLIP_VERTICAL) {
matrix.preScale(1.0f, -1.0f);
}
//یعنی برگرداندن در حالت افقی
else if(type == FLIP_HORIZONTAL) {
matrix.preScale(-1.0f, 1.0f);

} else {
return null;
}

//تولید تصویر نهایی
return Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight(), matrix,  true);
} 
}

سورس این پروژه را میتوانید از این لینک دانلود کنید.


فایلهای ضمیمه
توجه! هیچ فایل ضمیمه ای برای این مطلب یافت نشد

نظرات شما نظر جدید
سایر مقالات این دسته
تاریخچه و خصوصیات اندرویداجزای تشکیل دهنده سیستم عامل اندرویدآشنایی با API های اندرویدایجاد،ساخت و اجرای اولین برنامه اندرویدیکار با دکمه ها در اندرویدکار با تکست باکس ها در اندرویدکار با تکست ویو در اندرویدکار با گرید ویو در اندرویدکار با وب ویو در اندرویدکار با اسکرول ویو در اندرویدکار با اسکرول ویو افقیکار با الرت دیالوگ (AlertDialog)در اندرویدکار با ایمیج باتن(Image Button) در اندرویدکار با توگل باتنکار با چک باکس (Checkbox) در اندرویدکار با الرت دیالوگ (AlertDialog)در اندروید قسمت دوکار با ریتینگ بار(Rating bar) در اندرویدرفتن از یک اکتویتی به اکتویتی دیگرکار با نوتیفیکیشن ها (Notifications )در اندرویدکار با صوت در برنامه نویسی اندرویدکار با ویبره(Vibrator) در اندرویدکار با دوربین در اندرویدکار با دوربین در اندرویدکار با ویدیو ویو (VideoView)در اندرویدکار با شبکه وای فای (Wifi)در اندرویدکار با لیست ویو (ListView) در اندرویدکار با سیک بار (SeekBar) در اندرویدکار با دکمه بازگشت در اندرویدکار با AutoCompleteTextView در اندرویدتغییر فونت در اندرویدکار با لایه TableLayout در اندرویدکار با لیست کشویی (Spinner) در اندرویدکار با CalendarView در اندرویدساخت شمارنده در اندرویدکار با title bar در اندرویدکار با منو (Menu)در اندرویدکار با لیست ویو (Listview) قسمت دومطراحی رابط کاربری در اندروید قسمت اولطراحی رابط کاربری در اندروید قسمت دوم(طراحی گرد)کار با استایل در اندرویدکار با لایه AbsoluteLayout در اندرویدطراحی رابط کاربری در اندروید کار با gradientکار با کلیپ بورد(ClipBoard)در اندروید کار با مولتی تاچ(Multitouch ) در اندروید+سورس کدکار با OnLongClick در اندرویدکار با منوی زمینه (ContextMenu ) در اندرویدکار با حرکات (Gesture) در اندرویدکار با (AudioCapture) در اندروید+سورس کدکار با موتور Speech در اندروید + سورسکار با PhoneCall در اندرویدساخت لیست ویو سفارشی در اندروید+سورسساخت Toastسفارشی در اندرویدانتقال برنامه به حافظه sdکار با TextWatcher در اندروید+سورستغییر رنگ محیط Eclipse طراحی رابط کاربری در اندروید کار با Canvasساخت اکشن بار سفارشی در اندروید+سورسساخت الرت دیالوگ سفارشی در اندرویدساخت برنامه نمایش مقدار شارژ باتری در اندرویدایجاد افکت رنگی بروی تصاویر در اندروید+سورسساخت آپشن منوی سفارشی در اندروید+سورسساخت دکمه سه بعدی با Selectorسخنان بزرگان برنامه نويسيوارد كردن پروژه در محيط ايكليپساضافه کردن switch,case به لیست ویوبارش برف بروی تصویر + سورسکار با فیلتر hue رنگی کردن تصویر انتخاب و پخش فایل صوتی از حافظه گوشی+سورساضافه کردن چک باکس به لیست ویوکار با ShelfView یا نمایش کتابخانه ای + سورسکار با TabHost،اضافه کردن تب به برنامه های اندرویدآموزش کامل ساخت اکشن بار سفارشی+سورسساخت برنامه های واکنش گرا(ریسپانسیو) در اندرویدقسمت دوم صفحات 7 اینچ به بالااضافه کردن انیمیشن به دکمه+سورسکار با View Switcher در اندروید + سورسکار با فیلتر Blur Mask + سورسدانلود پک کامل آیکون های طراحی اندرویدکار با sharedPreferences در اندروید+سورسآموزش کار با proguard،محافظت از برنامه اندرویدپخش فایل صوتی (MP3) از ادرس اینترنتی+سورسپخش ویدیو از آدرس اینترنتی(URL) در اندروید+سورسگوشی های و تبلت های مطرح تا چینی به ساده ترین روشپاسخ به رویداد های WebVeiw دسترسی به وب ویو با استفاده از جاوااسکریپتکار با WIFI اکسس+سورسساخت تقویم هجری برای اندروید+سورسapp rateدانلود و نمایش تصویر در ListView+سورسدانلود و نمایش فایل متنی+سورسکار با کلاس های پایه اکتیویتیآینه کردن تصویر+سورسافزودن آیتم منو سفارشی بهActionBar+سورسارسال اطلاعات از دیتابیس به GridView + سورسدسترسی به Api هایREST قسمت اولتغییر فونت لیست ویوفعال سازی و معرفی بخش های Android developer options بخش اول کار با JSON در اندرویدآموزش ساده نصب شبیه ساز اندروید Genymotion