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

اموزش برنامه نویسی اندروید تخصصی

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

اموزش برنامه نویسی اندروید تخصصی

Layout manager

 


لیوت منیجر وظیفه‌ی تنظیم ظاهر خود و مدیریت چیدمان ویو های فرزندش را به عهده دارد. در واقع لیوت منیجر یک کلاس مشتق شده از ویو گروپ است.
لیوت منیجر های متعددی در سیستم اندروید تعبیه شده که در زیر به پرکاربردترین آنها اشاره میشود:


1-ConstraintLayout

2-LinearLayout

3-FarmeLayout

4-RelativeLayout

5-GridLayout

  • vahid hasani
فایل های محتوا(Resources) Drawables : /res/drawable شرح : فایل های تصویری(برای مثال png، jpeg) drawable های برداری (vector)، فایل های XML که به طور خودکار خود را متناسب با تراکم پیکسلی نمایشگر اندازه بندی و تنظیم می‌کنند در بر میگیرد. می‌توان از طریق کلاس R.drawables به آن ها دسترشی داشت. Simple Values : /res/values شرح : داخل این فایل مقادیر متنی یا رشته‌ای، رنگ ها، ابعاد و اندازه، استایل ها و ارایه‌ای از رشته ها یا اعداد صحیح در قالب فایل XML تعریف و ذخیره می شوند. به طور قرار دادی، هر نوع در پوشه‌ی جدا و مختص به خود قرار می‌گیرد، برای مثال مقادیر رشته ای در آدرس res/values/strings.xml ذخیره می‌شود. Layouts : /res/layout شرح : فایل های XML با مقادیر مربوط به layout اپلیکیشن که امکان طراحی محیط کاربری با activity ها و fragment ها را فراهم می‌آورند در این مسیر نگهداری می‌شوند. Styles and themes : /res/values شرح : فایل هایی که ظاهر و سبک نمایشی اپلیکیشن اندروید را تعریف می‌کنند. Animations : /res/animator شرح : می‌توانید دستورات انیمیشن را به صورت xml داخل این فایل(برای کار با animation API) تعریف کنید که به شما اجازه می‌دهد مقادیر property های آبجکت را جهت احرای انیمیشن و ادامه آن تا مدت زمان خاص، ویرایش نمایید. به عبارت دیگر فایل های ویژگی های انیمیشن را تعریف می‌کنند، در این مسیر ذخیره می‌شوند. Raw data : /res/raw شرح : داده هایی که می‌خواهید با فرمت خام خود ذخیره شوند را در این فایل تعریف می‌کنید. می‌توانید از طریق آبجکت InputStream به راحتی به آن ها دسترسی داشته باشید. در واقع بهتر است فایل های که فرمت آن ها با دیگر فایل متفاوت است در این پوشه جایگزاری نمایید. Menus : /res/menu شرح : فایل های XML ای که منو های اپلیکیشن را تشکیل می‌دهند در این پوشه قرار دارند. برای دسترسی به انها کافی است از R.menu استفاده نمایید.
  • vahid hasani




کد های مربوط به layuot

- <LinearLayout xmlns:android="
" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:background="#000000" android:baselineAligned="false" tools:context=".MainActivity">

<LinearLayout android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="1" android:gravity="center" android:orientation="vertical">

<ScrollView android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="77dp">
- <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">
  

<TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#009900" android:text="" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#EEEEEE" /> 
  

<TextView android:id="@+id/textView3" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ff6600" android:text="" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#EEEEEE" /> 
  

<TextView android:id="@+id/textView4" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ff00cc" android:text="" android:textColor="#EEEEEE" android:textAppearance="?android:attr/textAppearanceMedium" /> 
 

 <TextView android:id="@+id/textView5" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="" android:textColor="#EEEEEE" android:textAppearance="?android:attr/textAppearanceMedium" /> 
  </LinearLayout>
  </ScrollView>
  
<Button android:id="@+id/btnCapturePicture" android:layout_width="80dp" android:layout_height="80dp" android:layout_marginBottom="10dp" android:background="@drawable/gerd" android:text="عکس گرفتن" android:textColor="#EEEEEE" /> 
  <Button android:id="@+id/btnRecordVideo" android:layout_width="80dp" android:layout_height="80dp" android:background="@drawable/gerd" android:text="فیلم برداری" android:textColor="#EEEEEE" /> 
  </LinearLayout>
- <LinearLayout android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="1" android:orientation="vertical" android:padding="10dp">
  <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="نمایش محتوا" android:padding="10dp" android:textColor="#EEEEEE" android:textSize="15dp" /> 
  <ImageView android:id="@+id/imgPreview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#EEEEEE" android:visibility="gone" /> 
  <VideoView android:id="@+id/videoPreview" android:layout_width="wrap_content" android:layout_height="400dp" android:visibility="gone" /> 
  </LinearLayout>
  </LinearLayout> 

کد های کلاس جاوا


import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.VideoView;

public class Camera_Test extends Activity {
    
    MediaPlayer mdp,answer,errorr;

     private static final int CAMERA_CAPTURE_IMAGE_REQUEST_CODE = 100;
        private static final int CAMERA_CAPTURE_VIDEO_REQUEST_CODE = 200;
        public static final int MEDIA_TYPE_IMAGE = 1;
        public static final int MEDIA_TYPE_VIDEO = 2;
        TextView tv1,tv2,tv3,tv4;
     
        // directory name to store captured images and videos
        private static final String IMAGE_DIRECTORY_NAME = "AndroidSajad";
     
        private Uri fileUri; // file url to store image/video
     
        private ImageView imgPreview;
        private VideoView videoPreview;
        private Button btnCapturePicture, btnRecordVideo;
     
        
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.camera_test);
        
        
        mdp = MediaPlayer.create(Camera_Test.this,R.raw.loading);
        answer = MediaPlayer.create(Camera_Test.this,R.raw.answerq);
        errorr = MediaPlayer.create(Camera_Test.this,R.raw.errorr);
        
        tv1 = (TextView)findViewById(R.id.textView2);
        tv2 = (TextView)findViewById(R.id.textView3);

        tv3 = (TextView)findViewById(R.id.textView4);
        tv4 = (TextView)findViewById(R.id.textView5);

         imgPreview = (ImageView) findViewById(R.id.imgPreview);
            videoPreview = (VideoView) findViewById(R.id.videoPreview);
            btnCapturePicture = (Button) findViewById(R.id.btnCapturePicture);
            btnRecordVideo = (Button) findViewById(R.id.btnRecordVideo);
     
           
            btnCapturePicture.setOnClickListener(new View.OnClickListener() {
     
                @Override
                public void onClick(View v) {
                    // capture picture
                    answer.start();
                    captureImage();
                }
            });
     
           
            btnRecordVideo.setOnClickListener(new View.OnClickListener() {
     
                @Override
                public void onClick(View v) {
                    // record video
                    answer.start();
                    recordVideo();
                }
            });
     
            // Checking camera availability
            if (!isDeviceSupportCamera()) {
                errorr.start();
                Toast.makeText(getApplicationContext(),
                        "دوربین دستگاه شما پشتیبانی نمی شود",
                        Toast.LENGTH_LONG).show();
                finish();
            }
        }
     
      
        private boolean isDeviceSupportCamera() {
            if (getApplicationContext().getPackageManager().hasSystemFeature(
                    PackageManager.FEATURE_CAMERA)) {
                // this device has a camera
                return true;
            } else {
                // no camera on this device
                return false;
            }
        }
     
        /**
         * Capturing Camera Image will lauch camera app requrest image capture
         */
        private void captureImage() {
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
     
            fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
     
            intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
     
            // start the image capture Intent
            startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE);
            tv1.setText("فعال کردن دوربین...");
        }
     
       
        @Override
        protected void onSaveInstanceState(Bundle outState) {
            super.onSaveInstanceState(outState);
     
           
            outState.putParcelable("sajad", fileUri);
        }
     
        @Override
        protected void onRestoreInstanceState(Bundle savedInstanceState) {
            super.onRestoreInstanceState(savedInstanceState);
     
            // get the file url
            fileUri = savedInstanceState.getParcelable("sajad");
        }
     
        
        private void recordVideo() {
            Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
     
            fileUri = getOutputMediaFileUri(MEDIA_TYPE_VIDEO);
     
           
            intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
     
            intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); 
     
            
            startActivityForResult(intent, CAMERA_CAPTURE_VIDEO_REQUEST_CODE);
        }
     
       
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            // if the result is capturing Image
            if (requestCode == CAMERA_CAPTURE_IMAGE_REQUEST_CODE) {
                if (resultCode == RESULT_OK) {
                    tv2.setText("عکس گرفته شد");
                    previewCapturedImage();
                } else if (resultCode == RESULT_CANCELED) {
                    // user cancelled Image capture
                    tv2.setText("؟؟؟لغو عکس گرفتن");
                } else {
                    // failed to capture image
                    tv2.setText("!!!اشکال در گرفتن عکس");
                }
            } else if (requestCode == CAMERA_CAPTURE_VIDEO_REQUEST_CODE) {
                if (resultCode == RESULT_OK) {
                    tv2.setText("ویدیو با موفقیت ثبت شد");
                    // video successfully recorded
                    // preview the recorded video
                    previewVideo();
                } else if (resultCode == RESULT_CANCELED) {
                    // user cancelled recording
                    tv2.setText("ضبط فیلم متوقف شد!!!");
                } else {
                    // failed to record video
                    tv2.setText("خطا در ضبط فیلم...؟؟؟");
                }
            }
        }
     
        /**
         * Display image from a path to ImageView
         */
        private void previewCapturedImage() {
            try {
                // hide video preview
                videoPreview.setVisibility(View.GONE);
     
                imgPreview.setVisibility(View.VISIBLE);
     
                // bimatp factory
                BitmapFactory.Options options = new BitmapFactory.Options();
     
                // downsizing image as it throws OutOfMemory Exception for larger
                // images
                options.inSampleSize = 8;
     
                final Bitmap bitmap = BitmapFactory.decodeFile(fileUri.getPath(),
                        options);
     
                imgPreview.setImageBitmap(bitmap);
                tv3.setText("ذخیره عکس انجام شد");
            } catch (NullPointerException e) {
                e.printStackTrace();
            }
        }
     
        /**
         * Previewing recorded video
         */
        private void previewVideo() {
            try {
                // hide image preview
                imgPreview.setVisibility(View.GONE);
                tv3.setText("ذخیره فیلم انجام شد");
                videoPreview.setVisibility(View.VISIBLE);
                videoPreview.setVideoPath(fileUri.getPath());
                // start playing
                videoPreview.start();
                tv4.setText("نمایش فیلم گرفته شده ");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
         
        /**
         * ------------ Helper Methods ----------------------
         * */
     
        /**
         * Creating file uri to store image/video
         */
        public Uri getOutputMediaFileUri(int type) {
            return Uri.fromFile(getOutputMediaFile(type));
        }
     
        /**
         * returning image / video
         */
        private static File getOutputMediaFile(int type) {
     
            // External sdcard location
            File mediaStorageDir = new File(
                    Environment
                            .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
                    IMAGE_DIRECTORY_NAME);
     
            // Create the storage directory if it does not exist
            if (!mediaStorageDir.exists()) {
                if (!mediaStorageDir.mkdirs()) {
                    Log.d(IMAGE_DIRECTORY_NAME, "Oops! Failed create "
                            + IMAGE_DIRECTORY_NAME + " directory");
                    return null;
                }
            }
     
            // Create a media file name
            String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",
                    Locale.getDefault()).format(new Date());
            File mediaFile;
            if (type == MEDIA_TYPE_IMAGE) {
                mediaFile = new File(mediaStorageDir.getPath() + File.separator
                        + "IMG_" + timeStamp + ".jpg");
            } else if (type == MEDIA_TYPE_VIDEO) {
                mediaFile = new File(mediaStorageDir.getPath() + File.separator
                        + "VID_" + timeStamp + ".mp4");
            } else {
                return null;
            }
     
            return mediaFile;
        }
    } 

فقط مجوز ها رو خودت در منیفست وارد کن"

  • vahid hasani

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout 

    xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context=".MainActivity">

  

    <androidx.cardview.widget.CardView

        android:id="@+id/cardView"

        android:layout_width="match_parent"

        android:layout_height="190dp"

        android:layout_centerInParent="true"

        app:cardCornerRadius="22dp"

        app:cardUseCompatPadding="true"

        app:cardElevation="4dp"

        android:foreground="@drawable/purple_bg"

        android:clickable="true" >

  

        <LinearLayout

            android:layout_width="match_parent"

            android:layout_height="match_parent"

            android:background="@drawable/silver_bg">

        </LinearLayout>

  

    </androidx.cardview.widget.CardView>

  

    <TextView

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_below="@+id/cardView"

        android:gravity="center"

        android:text="Changing Card Color on Click"

        android:textStyle="bold|italic"

        android:textColor="#2F8C46"

        android:textSize="20sp" />

  

</RelativeLayout>

Step 5: Working with the MainActivity.java file

Go to the MainActivity.java file and refer to the following code. Below is the code for the MainActivity.java file.

Java

package com.anas.gfghover;

  

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

  

public class MainActivity extends AppCompatActivity {

  

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

    }

}

  • vahid hasani

 تشدید می‌شود.  
به گفته محققان غده تیروئید که در گردن قرار دارد بـه تشعشعـات یـونـی بـه ویـژه در کـودکـان حساس است، اما خطرات احتمالی این پرتوها کـه در دنـدانـپـزشـکـی وجود دارد،‌اغلب نادیده گرفته می‌شود.  
محققان تاکید دارند باور این که رادیولوژی در دندانپزشکی کاملا بی خطر و ایمن است، باید بیشتر مورد آزمایش و بررسی قرار بگیرد. این محققان خاطرنشان کردند که تجویز رادیولوژی فقط باید در مواقع ضروری انجام گیرد و نباید جزو معاینه معمولی و متداول باشد.

رابطه لپ تاپ با عقیم‌شدن مردان

یک بررسی نشان می‌دهد استفاده از لپ‌تاپ متصل به اینترنت بی سیم (WIFI) با عقیمی مردان، ارتباط مستقیم دارد. در سال‌های اخیر اسـتـفـاده از لـپ‌تـاپ بـه دلـیـل راحـتـی و آسانی استفاده و قابلیت جابجایی افزایش زیادی یافته است. این میزان استفاده از اینترنت WIFI، انسان را در معرض تردد جریان‌های الکترومغناطیسی صـادر شـده از لپ تاپ، قرار می‌دهد. به ویژه اعضای جنسی مردان به دلیل نزدیکی به لپ‌تاپ در حالت گذاشتن این وسیله روی پا بیشتر از سایر بخش‌های بدن تحت تاثیر امواج اینترنت قرار می‌گیرد.

سازوکار

حــرارت لپ‌تاپ در هـنـگـام گـذاشـتـن ایـن وسیله روی پا، به منطقه تولید مثل مردان تاثیر منفی  می‌گذارد و به مرور باعث کندی فعالیت آن شود.
حالت های عقیمی، وضعیتی شایع در جهان است و بر بیش از ۷۰ میلیون زوج در جهان، تاثیر می گذارد. عوامل نازایی به دلیل شرایط محیطی به وجود می‌آیند که از جمله می‌توان به امواج الکترومغناطیسی اشاره کرد.
در آزمایش و مقایسه دو نمونه از سلول‌های بخش تولید مثل ۲۹ حیوان مذکر، مشخص شد حرارت و امواج WIFI باعث کندی فعالیت آن‌هـا مـی‌شـود. در ایـن مقایسه، نمونه اول در منطقه معمولی رشد قرار گرفت اما نمونه دومی در پایین لپ‌تاپ روشن قرار داده شد و مشخص شد این نمونه، با کندی فعالیت، روبه رو شده است.

  • vahid hasani

public class Favorites extends Activity {
    
    public int Subjects_total_number;
    public Globals global = new Globals();
    public List<String> Favorites_numbers;
    public List<String> Favorites_strings;
    
    // List view
    private ListView lv;
     
    // Listview Adapter
    ArrayAdapter<String> adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.favorites);
        
        // Listview Data
        Favorites_strings = new ArrayList<String>;();
        Favorites_numbers = new ArrayList<String>;();
        final SharedPreferences shared = getSharedPreferences("Prefs", MODE_PRIVATE);
        Subjects_total_number = global.Subjects_total_number;
        for(int x = 1; x < Subjects_total_number+1; x = x+1) {  
            String each_subject = "subject_" + String.valueOf(x);
            Boolean b = shared.getBoolean(each_subject, false);
            if(b){
                String this_subject = "subject_" + String.valueOf(x);
                int resID = getResources().getIdentifier(this_subject, "string", getPackageName());
                Favorites_strings.add(getResources().getString(resID));
                String x_string = String.valueOf(x);
                Favorites_numbers.add(x_string);
            }
        }
        
        
         
        lv = (ListView) findViewById(R.id.list_view);
         
        // Adding items to listview
        adapter = new ArrayAdapter<String>;(this, R.layout.list_item_favorites, R.id.favorites_textView, Favorites_strings);
        lv.setAdapter(adapter);
        
        
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, final View view,
                int position, long id) {
                String favorite_number = Favorites_numbers.get(position);
                Intent i = new Intent(getApplicationContext(), Show_Subjects.class);
                i.putExtra("subject_number", favorite_number);
                startActivity(i);
            }

          });
    } 

saeed.f436

  • vahid hasani

Status bar color

vahid hasani | | ۰ نظر
import android.app.Activity;
import android.graphics.Color;
import android.os.Build;
import android.view.WindowManager;

public class Main {
  public static void changeStatusBarColor(Activity activity, int color) {
    if (color == 0)
      return;//  www  .  j  a  v  a2s . c o m
    if (isLollipopOrHigher()) {
      float cl = 0.9f;
      float[] hsv = new float[3];
      Color.colorToHSV(color, hsv);
      hsv[2] *= cl;
      int primaryDark = Color.HSVToColor(hsv);
      activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
      activity.getWindow().setStatusBarColor(primaryDark);
    }
  }

  public static boolean isLollipopOrHigher() {
    return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP;
  }
}
  • vahid hasani

Convert bitmap

vahid hasani | | ۰ نظر

Convert bitmap to Byte array using ByteArrayOutputStream

 

import java.io.ByteArrayOutputStream; import android.graphics.Bitmap; public class Main { public static byte[] bitmap2Bytes(Bitmap bitmap, Bitmap.CompressFormat mCompressFormat, final boolean needRecycle) { byte[] result = null; ByteArrayOutputStream output = null; try {/* w w w .ja v a 2s . c om*/ output = new ByteArrayOutputStream(); bitmap.compress(mCompressFormat, 100, output); result = output.toByteArray(); if (needRecycle) { bitmap.recycle(); } } catch (Exception e) { e.printStackTrace(); } finally { if (output != null) { try { output.close(); } catch (Exception e) { e.printStackTrace(); } } } return result; } }

  • vahid hasani
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import java.io.ByteArrayOutputStream;

public class Main{

    /**//w  w  w  .  j av a2  s. co m
     * Converts the input byte data into the relevant {@link Bitmap} image.
     * 
     * @param imageData
     *            byte array which backs the image.
     * @return {@link Bitmap} data constructed using the given byte data.
     */
    public static Bitmap getBitmapImage(final byte[] imageData) {
        BitmapFactory.Options options = new BitmapFactory.Options();
        // Convert byte array to bitmap
        return BitmapFactory.decodeByteArray(imageData, 0,
                imageData.length, options);
    }

}
  • vahid hasani

زندگی با وجود تمام سختی هایی که دارد، زیبایی های فراوانی در دل آن نهفته است. موارد و موضوعات زیادی برای شادیمان هست که اگر به آن ها بیندیشیم پی به خاصیت زیبایی زندگی خواهیم برد. چه خوب است که دلیل لبخند و شادی و امید دیگری باشیم. تا می توانیم به دیگران دلگرمی بدهیم و با گفته هایی هر چند کوتاه اما عمیق نور امیدی در دل دیگران باشیم. گاهی نیز انقدر از زندگی رنج خواهیم دید که درد دلمان جز دلنوشته کاری از دستشان بر نخواهد آمد. در ادامه مجموعه ای از زیباترین متن های ادبی زندگی را برایتان گرد آورده ایم.

ثانیه ها و دقیقه ها از پس هم میگذرند
بهار نزدیک است
لبخــــــــــند بزن
خدا نزدیک است

پنجره های کوچک خانه ام را روبه دنیایی بزرگ میگشایم
میدانم..میدانم
چقدر تنفس شیرین است

سلامت میکنم
او نزدیکی
لبخند میزنم
تو کنار منی

تو بهار منی
تو خدای منی

***

هیچوقت دلخوشی ڪسی رو ازش نگیرین
این دلخوشی میتونه:
یه سلام
یه احوالپرسی
یه حواسم بهت هست …
یه صدای گرم و دوستانه
و یه حس خوب باشه …
دوستی ها رو دست ڪم نگیرین …
همین …
بچه ها شوخی شوخی به گنجشک ها سنگ میزنن …
ولی گنجشک ها جدی جدی میمیرن … !
آدما شوخی شوخی به هم زخم زبون میزنن …
ولی دلها جدی جدی  می شڪنند….

***

هیچ اندیشه‌ ای زشت نیست ؛
اندیشه‌ ای که اجبار شود زشت می‌ شود
هیچ فردی زشت نیست ؛
فردی که زیبا نیندیشد زشت می‌ شود
انسان‌ ها همه با محبت‌ اند ؛
انسانی که اراده‌ اش را تحمیل می‌ کند ، ظالم است
انسان‌ ها همه عاشقند ؛
انسانی که نیاموخته عشق بورزد ، بی‌تفاوت است
انسان‌ ها همه شادند ؛
انسانی که نیاموخته شادی را لمس کند ، افسرده و غمگین است
“” از امروز زیبا ببینیم “”

  • vahid hasani