Farzad Sarseifi

مدیریت انجمن
  • تعداد ارسال ها

    1,915
  • تاریخ عضویت

  • آخرین بازدید

  • Days Won

    129

پست ها ارسال شده توسط Farzad Sarseifi


  1. بالاخره شرکت گوگل اسم نهایی اندروید ۸ را اعلام کرد. این نسخه از اندروید، Oreo نام دارد که نوعی بیسکوییت است. نسخه نهایی اندروید جدید هم از امروز برای دانلود روی گوشی‌ّهای پیکسل و نکسوس عرضه شده است.

    مایکروسافت در گیمزکام ۲۰۱۷ دنباله یکی از بهترین بازی‌های استراتژی دنیا را معرفی کرد. بازی Age of Empires 4 که برای ویندوز ۱۰ ساخته می‌شود. این بازی را سازنده‌های مجموعه Company of Heroes میسازند.

    به نظر میرسد گران‌ترین مدل گوشی گلکسی نوت ۸ نزدیک به ۱۲۰۰ دلار قیمت خواهد داشت. این مدل از ۶ گیگابایت رم و ۲۵۶ گیگابایت حافظه داخلی بهره می‌برد. گوشی جدید سامسونگ فردا معرفی خواهد شد.

     

    Android 8.0 Oreo is here

    Smarter, faster, and more powerful than ever.

    OTA rollout is expected to arrive first to Pixel and Nexus devices

    https://www.android.com

     

    دانلود گیف اندروید Oreo

    doc_2017-08-22_09-30-00.mp4

     

     


  2.  

    برای پیاده سازی اینکار باید در فایل مانیفست تگ زیر را اضافه کنید تا در صورتی کاربر در بخش Brower ها اپ شما را انتخاب کرد اطلاعات برای شما ارسال شود

     

    <intent-filter>
            <action android:name="android.intent.action.VIEW" />
    
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
    
            <data
                android:host="example.com"
                android:pathPrefix="/someresource/"
                android:scheme="http" />
            <data
                android:host="www.example.com"
                android:pathPrefix="/someresource/"
                android:scheme="http" />
        </intent-filter>

     

    Here,

    scheme -> Protocol of particular site

    host-> Exact site url with WWW

    pathprefix - > Your site's sub path if available

    Now,

     

     

     

    2 کاربر پسند شده است

  3. در اندروید Repository management توسط Gradle انجام میگیرد. این اروری که اتفاق افتاده است برای این میباشد که کتابخانه مورد نظر وجود ندارد تا از نسخه کش شده استفاده کن و باید حتما آن را دانلود نمایید

     

    برای دانلود :

    1- Gradle خود را آنلاین کنید

    1*Pz69HEeD38Maldd-Q3RbsA.png.9d0894d6ec7d3bfa52d18bfc553f8003.png

    2- یک وی پی ان اجرا کنید

    3- گزینه Sync Gradle را انتخاب کنید تا کتابخانه دانلود شود

     

     

     

    1 کاربر پسند دیده است

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

     

    layout

    layout-sw600dp  تبلت 7 اینچ

    layout-sw720dp  تبلت 10 اینچ

    Reach.png.6152287698a7be0961dd4a27f1926e89.png

     

    images.jpg.825420283fc52a3739fc013a599dbd81.jpg

     

    1 کاربر پسند دیده است

  5. در 1 ساعت قبل، alirabiee گفته است :

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

     

    آیا برای Layout های خود برای سایز های زیر نیز طراحی کرده اید؟

     

    layout-sw600dp

    layout-sw720dp

     

     

    1 کاربر پسند دیده است

  6. در ۱ ساعت قبل، iwordpress گفته است :

    با سلام

    من یک سورس اتصال فروشگاه ساز ووکامرس وردپرس به اندروید از سایت codecanyon.net خریدم ولی نتونستم از مستندات و راهنمایی های داخلش خروجی بگیرم.

    متغیر های لازم روی ویندوز نصب کردم اما خطاهای مربوط به cordova و gradle میده با اینکه متغیرهاشو نصب کردم.

    یک تصویر از خطا هم ضمیمه کردم 

    من آماتور هستم و اولین تجربه کار با jdk و sdk من هست ممنون میشم راهنمایی کنید

     

    photo_2017-08-09_17-29-03.jpg

    سلام

     

    آیا در System Variable ویندوز Android SDk,JDK Home را مسیردهی کرده اید؟

    ورژن نصبی Gradle که نصب دارید چند میباشد ؟

     

     

     

     

     

     

     


  7. تصاویر را میتوانید در دیتابیس اسم آنها را ذخیره کنید و سپس تصاویر را در res/drawable قرار دهید و سپس نمایش دهید

    در این کد rowItem نام آبجتکی هستش که تصویر وجود دارد

    	Resources res = getResources();
    			int resourceId = res.getIdentifier(rowItem.getIcon(), "drawable",
    					context.getPackageName());
    			img_icon.setImageResource(resourceId);

     


  8. در 7 ساعت قبل، مهندس گفته است :

    سلام دوستان.

    لطفا کمک کنید.

    اندروید استدیو این خطا رو میاره و هر چی غیر مجاز روشن میکنم تا اپدیت شه ؛ اما نمیشه و حتی ورژن کتابخونه رو عوض کردم ولی فایده نداره.:huh:

     

    Capture1.PNG

    شما میبایستی Gradle خود را آنلاین کنید و سپس کتابخانه مورد نظر را دانلود نمایید


  9. برای اندروید میتوانید برای ارتباط با سرور از وب سرویس های Volley,OkHttp,Retrofit استفاده کنید

     

    Volley توسط گوگل ساخته شده است و نسخه ای stable میباشد و براحتی میتوانید آن را پیاده سازی کنید

     

    راه حل بهتری که وجود دارد Retrofit هستش که دارای سرعت بیشتری نسبت به Volley میباشد

    http://square.github.io/retrofit/

     


  10. در 2 ساعت قبل، mahdi_cyrus20 گفته است :

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

    میخوام یه سری متن و نوشته دارم تبدیل به برنامه اندروید کنمش.مثلا مثل برنامه قانون که فهرست داره و با انتخاب موضوع وارد مطلب میشه. 

    آیا کد و یا طراحی آماده ای وجود داره که من فقط مطالبم رو وارد کنم و تبدیل به برنامه اندروید بشه؟؟

    متشکرم

     


  11. در ۱ ساعت قبل، b.kordtabar گفته است :

    با سلام

    هنگام اجرای برنامه تقویم فارسی با Date Picker اپ اندروید crash  می کند و روی قسمت typeface خطا می گیرد.

    
    Typeface typeface = Typeface.createFromAsset(getAssets(), "Shabnam-Light-FD.ttf");

     

    چک کنید آیا در پوشه assets فونت Shabnam-Light-FD.ttf وجود دارد یا خیر؟


  12. این روش را تا انتها انجام دهید

    Colors.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>
    <color name="colorBlack">#000000</color>
    <color name="colorWhite">#ffffff</color>
    </resources>

    activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <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"
        tools:context="com.inducesmile.androidrecyclerviewinfinitescroll.MainActivity">
        <android.support.v7.widget.RecyclerView
            android:id="@+id/recycler_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scrollbars="vertical" />
    </RelativeLayout>

    item_list.xml

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.v7.widget.CardView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="16dp"
        card_view:cardCornerRadius="4dp"
        card_view:cardUseCompatPadding="true"
        card_view:cardPreventCornerOverlap="true"
        card_view:cardElevation="4dp">
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
           <ImageView
               android:id="@+id/icon_image"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:src="@drawable/sideicon"
               android:layout_alignParentLeft="true"
               android:layout_marginLeft="8dp"
               android:layout_marginTop="18dp"
               android:adjustViewBounds="true"
               android:contentDescription="@string/app_name"/>
            <TextView
                android:id="@+id/title_header"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@+id/icon_image"
                android:layout_alignBaseline="@+id/icon_image"
                android:padding="18dp"
                android:text="@string/app_name"/>
        </RelativeLayout>
    </android.support.v7.widget.CardView>

    progress_item.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <ProgressBar
            android:id="@+id/progressBar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:indeterminate="true"
            style="@android:style/Widget.Holo.ProgressBar"
            android:layout_gravity="center_horizontal"/>
    </LinearLayout>

    RecyclerViewAdapter.java

    import android.content.Context;
    import android.support.v7.widget.LinearLayoutManager;
    import android.support.v7.widget.RecyclerView;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import java.util.List;
    public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewHolders> {
        private List<String> itemList;
        protected Context context;
        private int visibleThreshold = 5;
        private int lastVisibleItem, totalItemCount;
        private boolean loading;
        private OnLoadMoreListener onLoadMoreListener;
        public RecyclerViewAdapter(Context context, List<String> itemList, RecyclerView recyclerView) {
            this.itemList = itemList;
            this.context = context;
            if(recyclerView.getLayoutManager() instanceof LinearLayoutManager){
                final LinearLayoutManager linearLayoutManager = (LinearLayoutManager)recyclerView.getLayoutManager();
                recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
                    @Override
                    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                        super.onScrolled(recyclerView, dx, dy);
                        totalItemCount = linearLayoutManager.getItemCount();
                        lastVisibleItem = linearLayoutManager.findLastVisibleItemPosition();
                        if(!loading && totalItemCount <= (lastVisibleItem + visibleThreshold)){
                            if(onLoadMoreListener != null){
                                onLoadMoreListener.onLoadMore();
                            }
                            loading = true;
                        }
                    }
                });
            }
        }
        @Override
        public int getItemViewType(int position) {
            return itemList.get(position) != null ? 1 : 0;
        }
        @Override
        public RecyclerViewHolders onCreateViewHolder(ViewGroup parent, int viewType) {
            RecyclerViewHolders viewHolder = null;
            if(viewType == 1){
                View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, parent, false);
                viewHolder = new RecyclerViewHolders(layoutView);
            }else{
                View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, parent, false);
                viewHolder = new ProgressViewHolder(layoutView);
            }
            return viewHolder;
        }
        @Override
        public void onBindViewHolder(RecyclerViewHolders holder, int position) {
            if(holder instanceof RecyclerViewHolders){
                ((RecyclerViewHolders)holder).textTitle.setText(itemList.get(position));
            }else{
                ((ProgressViewHolder)holder).progressBar.setIndeterminate(true);
            }
        }
        public void setLoad(){
            loading = false;
        }
        @Override
        public int getItemCount() {
            return this.itemList.size();
        }
        public void setOnLoadMoreListener(OnLoadMoreListener onLoadMoreListener){
            this.onLoadMoreListener = onLoadMoreListener;
        }
        public interface OnLoadMoreListener {
            void onLoadMore();
        }
        public void setLoaded() {
            loading = false;
        }
    }

    RecyclerViewHolders.java

    import android.support.v7.widget.RecyclerView;
    import android.view.View;
    import android.widget.ImageView;
    import android.widget.TextView;
    public class RecyclerViewHolders extends RecyclerView.ViewHolder implements View.OnClickListener{
        public ImageView displayedImage;
        public TextView textTitle;
        public RecyclerViewHolders(View itemView) {
            super(itemView);
            itemView.setOnClickListener(this);
            textTitle = (TextView)itemView.findViewById(R.id.title_header);
        }
        @Override
        public void onClick(View view) {
        }
    }

    ProgressViewHolder.java

    import android.view.View;
    import android.widget.ProgressBar;
    public class ProgressViewHolder extends RecyclerViewHolders{
        public ProgressBar progressBar;
        public ProgressViewHolder(View itemView) {
            super(itemView);
            progressBar = (ProgressBar)itemView.findViewById(R.id.progressBar);
        }
    }

    MainActivity

    import android.os.Bundle;
    import android.os.Handler;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.LinearLayoutManager;
    import android.support.v7.widget.RecyclerView;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * Created by F.Sarseify on 1/14/2017.
     */
    public class MainActivity extends AppCompatActivity {
        private static final String TAG = MainActivity.class.getSimpleName();
        private RecyclerView recyclerView;
        private RecyclerViewAdapter recyclerViewAdapter;
        private LinearLayoutManager linearLayoutManager;
        private  List<String> adapterData;
        private Handler handler;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            handler = new Handler();
            linearLayoutManager = new LinearLayoutManager(MainActivity.this);
            // return the data object
            adapterData = getFirstData();
            recyclerView = (RecyclerView)findViewById(R.id.recycler_view);
            recyclerView.setLayoutManager(linearLayoutManager);
            recyclerViewAdapter = new RecyclerViewAdapter(MainActivity.this, adapterData, recyclerView);
            recyclerView.setAdapter(recyclerViewAdapter);
            recyclerViewAdapter.setOnLoadMoreListener(new RecyclerViewAdapter.OnLoadMoreListener() {
                @Override
                public void onLoadMore() {
                    adapterData.add(null);
                    recyclerViewAdapter.notifyItemInserted(adapterData.size() - 1);
                    handler.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            adapterData.remove(adapterData.size() - 1);
                            recyclerViewAdapter.notifyItemRemoved(adapterData.size());
                            for (int i = 0; i < 15; i++) {
                                adapterData.add("Item" + (adapterData.size() + 1));
                                recyclerViewAdapter.notifyItemInserted(adapterData.size());
                            }
                            recyclerViewAdapter.setLoaded();
                        }
                    }, 2000);
                    System.out.println("load");
                }
            });
        }
        private List<String> getFirstData(){
            List<String> listObject = new ArrayList<String>();
            listObject.add("P30droid.com");
            listObject.add("P30droid.com");
            listObject.add("P30droid.com");
            listObject.add("P30droid.com");
            listObject.add("P30droid.com");
            listObject.add("P30droid.com");
            listObject.add("P30droid.com");
            listObject.add("P30droid.com");
            listObject.add("P30droid.com");
            listObject.add("P30droid.com");
            return listObject;
        }
    }

     

     

     recyclerviewinfinitescroll.jpg.467e0fc4cf89e68a63c18850a774523f.jpg

     

     


  13. ابتدا یک کلاس برای Scroll و تعداد ایتم های قابل مشاهده ایجاد کنید

    public abstract class EndlessRecyclerOnScrollListener extends RecyclerView.OnScrollListener {
        public static String TAG = EndlessRecyclerOnScrollListener.class.getSimpleName();
    
        private int previousTotal = 0; // The total number of items in the dataset after the last load
        private boolean loading = true; // True if we are still waiting for the last set of data to load.
        private int visibleThreshold = 5; // The minimum amount of items to have below your current scroll position before loading more.
        int firstVisibleItem, visibleItemCount, totalItemCount;
    
        private int current_page = 1;
    
        private LinearLayoutManager mLinearLayoutManager;
    
        public EndlessRecyclerOnScrollListener(LinearLayoutManager linearLayoutManager) {
            this.mLinearLayoutManager = linearLayoutManager;
        }
    
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
    
            visibleItemCount = recyclerView.getChildCount();
            totalItemCount = mLinearLayoutManager.getItemCount();
            firstVisibleItem = mLinearLayoutManager.findFirstVisibleItemPosition();
    
            if (loading) {
                if (totalItemCount > previousTotal) {
                    loading = false;
                    previousTotal = totalItemCount;
                }
            }
            if (!loading && (totalItemCount - visibleItemCount)
                    <= (firstVisibleItem + visibleThreshold)) {
                // End has been reached
    
                // Do something
                current_page++;
    
                onLoadMore(current_page);
    
                loading = true;
            }
        }
    
        public abstract void onLoadMore(int current_page);
    }

    و همچنین در اکتیویتی خود کلاس فوق را فراخوانی نمایید

    import android.os.Bundle;
    import android.support.v7.app.ActionBarActivity;
    import android.support.v7.widget.LinearLayoutManager;
    import android.support.v7.widget.RecyclerView;
    
    public class SampleActivity extends ActionBarActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_sample);
    
            RecyclerView recyclerView = (RecyclerView) findViewById(R.id.list);
            LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
            recyclerView.setLayoutManager(linearLayoutManager);
            recyclerView.setOnScrollListener(new EndlessRecyclerOnScrollListener(linearLayoutManager) {
                @Override
                public void onLoadMore(int current_page) {
                    // do something...
                }
            });
        }
    }

     


  14. 1. Code Snippets

    For java.util.Date, just create a new Date()

    DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
    Date date = new Date(); 
    System.out.println(dateFormat.format(date)); //2016/11/16 12:08:43

    For java.util.Calendar, uses Calendar.getInstance()

    DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    Calendar cal = Calendar.getInstance();
    System.out.println(dateFormat.format(cal)); //2016/11/16 12:08:43

    For java.time.LocalDateTime, uses LocalDateTime.now()

    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); 
    LocalDateTime now = LocalDateTime.now(); 
    System.out.println(dtf.format(now)); //2016/11/16 12:08:43

    For java.time.LocalDate, uses LocalDate.now()

    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");
    LocalDate localDate = LocalDate.now();
    System.out.println(dtf.format(localDate)); //2016/11/16

     

    1 کاربر پسند دیده است