آموزش برنامه نویسی اندروید

آموزش برنامه نویسی اندروید

آموزش برنامه نویسی اندروید

آموزش برنامه نویسی اندروید

آموزش برنامه نویسی اندروید

پیوندهای روزانه

۶ مطلب در دی ۱۳۹۴ ثبت شده است

به نام خدا

با سلام

یکی از دردسرهای اساسی ما برای طراحی زیبا انتخاب یک فونت مناسب هست. چند وقتی هست که فونت ایران سنس سریف دارای شهرت خاصی شده و انصافا هم دارای زیبایی و خوانیی به خصوصی می باشد.

اما این فونت به صورت تجاری و غیر رایگان می باشد (البته هیچ اشکالی نداره و خودم هم خرید کردم و ازش استفاده می کنم).

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


بله، فونت زیبای وزیر که نسخه دومش هم منتشر شده و بسیار خوانایی دلنیشینی داره.

برای دیدن جزئیات بیشتر و دانلود فونت به گیتهاب فونت برید:

مشاهده برگه

مشاهده نحوه استفاده در وب






  • مدیرسایت


به نام خدا

سلام . امروز میخوایم بهتون یه منو کشویی متریال معرفی کنیم که به راحتترین روش ممکن میتونه براتون یه منوکشویی زیبا ایجاد کنه.

در دو مرحله، ابتدا داخل gradle پروژه تون اون رو اضافه کنید:

compile('com.mikepenz:materialdrawer:4.6.4@aar') {
    transitive = true
}

سپس منو کشوییتون رو ایجاد کنید:

new DrawerBuilder().withActivity(this).build();

عالی بود به همین راحتی!!!


بعضی ویژگی های این منو کشویی اندرویدی عالی:

  • راحتترین روش برای پیاده سازی
  • راه اندازی در کمتر از 5 دقیقه
  • پشتیبانی از اندروید api lvl 10 به بالا
  • دارای api ساده و سریع
  • پیروی از قوانین طراحی متریال دیزاین
  • دارای MiniDrawer شبیه جی میل
  • استفاده از کتابخانه AppCompat
  • پشتیبانی از راست به چپ
  • پشتیبانی از badge
  • قابلیت افزودن هدر و فوتر

البته دارای تنظیمات زیادی هست که به همراه آخرین نسخه کتابخونه می تونید در لینک زیر از گیتهاب ببینید:

مشاهده در گیت هاب

  • مدیرسایت

به نام خدا

سلام

شده تا حالا بخواید دیتابیس برنامه هاتون رو درون گوشی ببینید به چه شکلی دراومده؟ یا آیا دیتا وارد دیتابیستون شده یا نه؟ مشکل از کجای دیتابیس هست؟ ولی دسترسی به فایل دیتابیس درون گوشیتون نداشته باشید؟

درسته که میشه از طریق نسخه دیباگ و دستورات adb دیتابیس رو دید ولی امروز میخوام به شما کلاسی رو معرفی کنم که این کاررو به نحو احسنت انجام میده و فارسی رو هم پشتیبانی میکنه و نیازی به دسترسی روت، نسخه دیباگ و حتی adb هم نداره.

با استفاده از کلاس موجود در آدرس زیر و کپی اون در برنامه تون و انجام مراحل راحت گفته شده، می تونید کل محتوای دیتابیستون رو به صورت گرافیکی و مرتب ببینید:

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



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

  • مدیرسایت

به نام خدا

سلام. برای ذخیره تصویر موجود در ImageView داخل حافظه خارجی دیوایس کاربر مراحل زیر رو پیش می ریم:

1- افزودن دو متد زیر برای ذخیره تصویر Bitmap گرفته شده:
img نام ImageView  مورد نظر ما می باشد.
private void save() {
FileOutputStream out = null;
Bitmap bitmap = ((BitmapDrawable) img.getDrawable()).getBitmap();
try {
out = new FileOutputStream(getFilename());
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
Snackbar.make(view, "تصویر در پوشه esfanduneذخیره شد", Snackbar.LENGTH_SHORT)
.show();
} catch (FileNotFoundException e) {
e.printStackTrace();
Snackbar.make(view, "خطایی در ذخیره سازی رخ داد", Snackbar.LENGTH_SHORT).show();
}
}

private String getFilename() {
File file = new File(Environment.getExternalStorageDirectory()
.getPath(), "esfandune");
if (!file.exists()) {
file.mkdirs();
}
String uriSting = (file.getAbsolutePath() + "/"
+ "nami_ke_mikhayd_ax_zakhire_beshe" + ".jpg");
return uriSting;
}
2- صدا زدن متد save() در جایی که میخوایم تصویرمون ذخیره بشه.
۳-افزودن اجازه دسترسی به حافظه خارجی:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


  • مدیرسایت

به نام خدا

سلام


میخوام بهتون یک کتابخانه فوق قدرتمند معرفی کنم. کتابخونه ای برای بارگذاری تصاویر، فیلمها و تصاویر متحرک gif . این کتابخونه با اینکه کار باهاش بسیار ساده است اما فوق العاده در باطن قدرتمند هست.

اگه در لیست ویو، گرید ویو یا recyclerview هاتون از تصاویر استفاده میکنید، پیشنهاد می کنم حتما از این کتابخانه برای لود تصاویرتون استفاده کنید.

مزیت های

-سیستم کش قدرتمند

-امکان دانلود تصاویر

-نمایش تصاویر از طریق فایل یا url

-تغییر سایز تصاویر و هماهنگ سازی

-کاهش فوق العاده مصرف داده و پردازشگر

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

و....

برای استفاده کافیست ابتدا به gradle پروژه تون اضافه کنید

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.github.bumptech.glide:glide:3.6.1'
    compile 'com.android.support:support-v4:19.1.0'
}

یا از Maven:

<dependency>
    <groupId>com.github.bumptech.glide</groupId>
    <artifactId>glide</artifactId>
    <version>3.6.1</version>
</dependency>
<dependency>
    <groupId>com.google.android</groupId>
    <artifactId>support-v4</artifactId>
    <version>r7</version>
</dependency>

اینم یه مثال فوق العاده ساده که قدرت glide رو به رخ می کشونه:

// For a simple view:
@Override
public void onCreate(Bundle savedInstanceState) {
    ...
    ImageView imageView = (ImageView) findViewById(R.id.my_image_view);

    Glide.with(this).load("http://goo.gl/gEgYUd").into(imageView);
}

// For a simple image list:
@Override
public View getView(int position, View recycled, ViewGroup container) {
    final ImageView myImageView;
    if (recycled == null) {
        myImageView = (ImageView) inflater.inflate(R.layout.my_image_view, container, false);
    } else {
        myImageView = (ImageView) recycled;
    }

    String url = myUrls.get(position);

    Glide.with(myFragment)
        .load(url)
        .centerCrop()
        .placeholder(R.drawable.loading_spinner)
        .crossFade()
        .into(myImageView);

    return myImageView;
}

برای دیدن مثال و توضیحات کامل و همچنین آخرین نسخه کتابخانه به لینک زیر مراجعه کنید:

گیتهاب



  • مدیرسایت

به نام خدا

سلام.

یکی از تغییرات به گفته #گوگل در اندروید #مارشمالو حذف Apache HTTP client می باشد.
و گوگل پیشنهاد کرده به جای آن ، برنامه نویسان از #HttpURLConnection استفاده کنند. حال ما میخوایم یه مثال کامل و با توضیحات از این متد براتون قرار بدیم:


//import these on your header
import java.io.IOException;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Scanner;

//do this wherever you are wanting to POST
URL url;
HttpURLConnection conn;

try{
//if you are using https, make sure to import java.net.HttpsURLConnection
url=new URL(“http://esfandune.ir/somefile.php”);

//you need to encode ONLY the values of the parameters
String param=”param1=” + URLEncoder.encode(“value1″,”UTF-8″)+
“&param2=”+URLEncoder.encode(“value2″,”UTF-8″)+
“&param3=”+URLEncoder.encode(“value3″,”UTF-8″);

conn=(HttpURLConnection)url.openConnection();
//set the output to true, indicating you are outputting(uploading) POST data
conn.setDoOutput(true);
//once you set the output to true, you don’t really need to set the request method to post, but I’m doing it anyway
conn.setRequestMethod(“POST”);

//Android documentation suggested that you set the length of the data you are sending to the server, BUT
// do NOT specify this length in the header by using conn.setRequestProperty(“Content-Length”, length);
//use this instead.
conn.setFixedLengthStreamingMode(param.getBytes().length);
conn.setRequestProperty(“Content-Type”, “application/x-www-form-urlencoded”);
//send the POST out
PrintWriter out = new PrintWriter(conn.getOutputStream());
out.print(param);
out.close();

//build the string to store the response text from the server
String response= “”;

//start listening to the stream
Scanner inStream = new Scanner(conn.getInputStream());

//process the stream and store it in StringBuilder
while(inStream.hasNextLine())
response+=(inStream.nextLine());

}
//catch some error
catch(MalformedURLException ex){
Toast.makeText(MyActivity.this, ex.toString(), 1 ).show();

}
// and some more
catch(IOException ex){

Toast.makeText(MyActivity.this, ex.toString(), 1 ).show();
}


@esfandune

امیدواریم بتونه کمکتون کنه.
همیشه از متدهای جدید استفاده کنید:)
منابع:
دولوپر اندروید:
http://opizo.com/8oQgW8
و:
http://opizo.com/t2FwaS
  • مدیرسایت