برترین های انجمن

  1. Farzad Sarseifi

    Farzad Sarseifi

    مدیریت انجمن


    • امتیاز: پسندیدن (Likes)

      20

    • تعداد ارسال ها

      2,198


  2. Omid Zakeri

    Omid Zakeri

    مدیر انجمن


    • امتیاز: پسندیدن (Likes)

      6

    • تعداد ارسال ها

      142


  3. hharddy

    hharddy

    توسعه دهنده اندروید


    • امتیاز: پسندیدن (Likes)

      3

    • تعداد ارسال ها

      28


  4. kamiar101

    kamiar101

    توسعه دهنده اندروید


    • امتیاز: پسندیدن (Likes)

      3

    • تعداد ارسال ها

      14



Popular Content

Showing most liked content since ۱۸/۰۱/۲۵ in all areas

  1. 4 likes
    به تازگی گوگل در کنفرانس سال ۲۰۱۷ از ORM خود به نام Google Room رونمایی کرد که هدف این پست هم آموزش کار با این کتابخونه هست. فواید استفاده از Room بهبود امنیت دسترسی آسان پیاده سازی سریع تمام عملیات های اصلی DML به غیر از Select با استفاده از Annotation ها قابل استفاده می باشد البته دستور Select و دیگر کوئری های پیچیده را هم میتونید به راحتی پیاده سازی کنید. در ویدیو قسمت اول کار با سه کامپوننت اصلی Room یعنی DAO, Entityو Database و به همراه عملیات های مختلف یاد میگیریم. لینک دانلود مستقیم
  2. 4 likes
    در این تاپیک آموزشی، از ابتدا آموزش برنامه نویسی اندروید را شروع خواهیم نمود ،یکی از مشکلات برنامه نویسان اندروید کم یا نبود آموزش های اصولی اندروید میباشد ،بر همین اساس تصمیم بر آن داشتیم بطور جامع آموزش های فارسی را منتشر نماییم . بیشتر کاربران انجمن برنامه نویسی اندروید، کم و بیش با این مشکل رو به رو بوده اند که به چه صورتی اندروید را شروع کنند و شروع به آموزش اندروید بگیرند.بر این اساس در این تاپیک بطور جامع آموزش های اندروید قرار داده خواهد شد.. این تاپیک آموزشی هر چند روز یکبار بروز رسانی خواهد شد و آموزش ها جدیدتر قرار داده خواهد شد منو در اندروید ذخیره سازی اطلاعات در اندروید فرگمنت و گوگل مپ در اندروید وب سرویس در اندروید آموزش های متریال دیزاین در اندروید آموزش های کاتلین : با تشکر انجمن برنامه نویسی اندروید-پی سی دروید
  3. 3 likes
    آقای قلندری دستت درد نکنه که زحمت ترجمه کتاب آموزش مقدماتی اندروید رو داری می کشی . واقعا ازت ممنونم . آیا این ترجمه ها رو ممکنه در آینده بصورت فایل پی دی اف برای دانلود قرار بدین ؟
  4. 3 likes
    بالاخره اون کاری که من می خواستم دارید انجام می دید مرسی
  5. 2 likes
    کتابخانه Lottie در اندروید آیا همیشه نمایش انیمیش برای شما یک دغدغه بوده؟ چجوری انیمیشن های حرفه ای رو در اندروید نمایش دهیم؟؟ راه حل اینجاس ؟ Lottie کتابخانه Lottie در اندروید این امکان را فراهم می آورد که انیمیشن های افکتر افکت را با خروجی json نمایش دهید که باعث میشود حجم اپلیکیشن بسیار پایین باشد و از سرعت نیز به مشکلی برخورد نکنید لینک اصلی کتابخانه https://github.com/airbnb/lottie-android دانلود Dependency compile 'com.airbnb.android:lottie:2.5.0-rc1' دانلود کتابخانه از سرور انجمن اندروید ایران lottie-android-master.zip
  6. 2 likes
    خب برای اینکار شما با سرویس BroadCastReciver متن پیغام از میگیرد و میتوند با یک interface دیتارو به داخل ویجت EditText بفرستید و یا استفاده از کتابخانه EventBus
  7. 2 likes
    شما باید ابتدا شماره تلفن را از کاربر بگیرید و به سمت سرور انتقال دهید و سپس در سمت سرور از شرکت های سرویس دهنده sms یک api بگیرید و برای شماره مورد نظر یک پیغام را ارسال کنید. پیغام معمولا میتواند کد تایید باشد
  8. 2 likes
    پایگاه داده SQLite یکی از راه های ذخیره داده های برنامه شما به صورت محلی در اندروید است. در این پایگاه داده من میخوام به شما یک راه ساده تر بهنشان دهم. با استفاده از Sugar ORM . به طور معمول با استفاده از SQLite در اندروید، مقدار زیادی از کد های boilerplate مورد نیاز بوده که زمان قابل توجهی صرف می شود. اما با Sugar ORM، همه ی شما نیاز به یک مدل (Bean) دارید: (Add a new note (save : اضافه کردن Delete note : حذف کردن Modify : تغییرات در ابتدا کتابخانه زیر را اضافه کنید : compile 'com.github.satyan:sugar:1.4' تنظیمات زیر را وارد منیفست کنید: <application android:name="com.orm.SugarApp" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" > … <meta-data android:name="DATABASE" android:value="notes.db" /> <meta-data android:name="VERSION" android:value="1" /> <meta-data android:name="QUERY_LOG" android:value="true" /> <meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.grafixartist.noteapp" /> </application> یک مدل (Bean) کلاس شما نیاز دارید که به صورت زیر باشد : public class Note extends SugarRecord { String title, note; long time; // Default constructor is important! public Note() { } public Note(String title, String note, long time) { this.title = title; this.note = note; this.time = time; } … // Getter setters here } برای Create کردن کد زیر را وارد کنید : Note note = new Note(title, desc, time); note.save(); برای Update کردن کد زیر را وارد کنید : Note note = Note.findById(Note.class, id); note.title = “updated title here"; note.save(); برای Delete کردن کد زیر را وارد کنید : Note note = Note.findById(Note.class, id); note.delete(); برای بدست آوردن فهرست همه لیست ها : List<Note> notes = Note.listAll(Note.class); Query برای این کار 2 راه برای انجام این کار وجود دارد. بیایید مثال را مقایسه کنیم: استفاده از Raw Query : List<Note> notes = Note.findWithQuery(Note.class, "Select * from Note where name = ?", "mynote"); استفاده از Query Builder : Select.from(Note.class) .where(Condition.prop("title").eq("mynote"), Condition.prop("description").eq("notedesc")) .list();
  9. 2 likes
    سلام خوش امدید بهتره که دیگه با لیست ویو کار نکنید و بجای اون از RecyclerView استفاده کنید کلاس اداپتر : public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { List<Model> mList = new ArrayList<>(); public MyAdapter(Context context, List<Model> data) { mList = data; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_row, null); return new ViewHolder(view); } @Override public void onBindViewHolder(ViewHolder holder, int position) { Model model = sureList.get(position); holder.txt_title.setText(model.get_name()); holder.txt_id.setText(model.getS_id()+""); } @Override public int getItemCount() { return sureList.size(); } public class ViewHolder extends RecyclerView.ViewHolder { TextView txt_title,txt_id; public ViewHolder(View itemView) { super(itemView); txt_title = (TextView) itemView.findViewById(R.id.txt_title); txt_id = (TextView) itemView.findViewById(R.id.txt_id); } } }
  10. 1 like
    از کتابخانه Dexter استفاده کنید برای گرفتن مجوز Runtime
  11. 1 like
    سلام شما باید تصاویر خود را در فولدر های زیر قرار دهید drawable-mdpi drawable-hdpi drawable-xhdpi drawable-xxhdpi drawable-xxxhdpi
  12. 1 like
    ChatKit یک کتابخانه طراحی شده برای ساده سازی توسعه ی رابط کاربری اپلیکیشن هایی که به عنوان چت می باشند استفاده می شود. این امکانات انعطاف پذیر برای ظاهر طراحی، سفارشی سازی و مدیریت داده ها است. امکانات: - پیام های رسانه ای پیش فرض و سفارشی - طرح بندی کاملا قابل تنظیم(با استفاده از رنگ های خود، ظاهر متن، drawable، selectors و اندازه) و یا حتی ایجاد نشانه های سفارشی خود و / یا خود را برای رفتار منحصر به فرد؛ - لیستی از گفتگوها، از جمله چتهای گروهی و گروهی، نشانگرهای پیامهای خوانده نشده و آخرین پیام های کاربر؛ - لیست پیام ها (ورودی و خروجی) با صفحه بندی تاریخ و هدر های محاسبه شده در حال حاضر؛ - آواتار های مختلف بدون تحقق خاصی از بارگذاری تصویر - شما می توانید از هر کتابخانه ای که می خواهید استفاده کنید؛ - حالت انتخاب برای تعامل با پیام؛ - برجسته کردن لینک ها - قالب بندی آسان تاریخ - مدل های خود را برای گفتگو و پیام ها - هیچ تبدیل مورد نیاز وجود دارد؛ - آماده استفاده از نمایش ورودی؛ - انیمیشن های سفارشی (با توجه به استفاده از RecyclerView). دانلود از طریق Gradle compile 'com.github.stfalcon:chatkit:0.2.2' یا Maven <dependency> <groupId>com.github.stfalcon</groupId> <artifactId>chatkit</artifactId> <version>0.2.2</version> <type>pom</type> </dependency> https://github.com/stfalcon-studio/ChatKit ChatKit-master.zip
  13. 1 like
    SwipeBack یک کتابخانه اندروید است که می تواند با استفاده از ان حرکات و رفتن به یک اکتیویتی را به طور خاص و جالب نمایش داد. شما می توانید جهت کشویی یا حرکت به سمت چپ یا راست را تعیین کنید مانند FROM_LEFT، FROM_TOP، FROM_RIGHT و FROM_BOTTOM . برای استفاده از این کتابخانه در قسمت Gradle مورد زیر را اضافه کنید: dependencies { compile 'com.gongwen:swipeback:1.0.2' } کد xml مربوط به بخش Layout <com.gw.swipeback.SwipeBackLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/swipeBackLayout" android:layout_width="match_parent" android:layout_height="match_parent" app:directionMode="left" app:isSwipeFromEdge="true" app:maskAlpha="125" app:swipeBackFactor="0.5"> <!-- SwipeBackLayout must contains only one direct child --> </com.gw.swipeback.SwipeBackLayout> <com.gw.swipeback.WxSwipeBackLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/swipeBackLayout" android:layout_width="match_parent" android:layout_height="match_parent" app:directionMode="left" app:isSwipeFromEdge="true" app:maskAlpha="125" app:swipeBackFactor="0.5"> <!-- WxSwipeBackLayout must contains only one direct child --> </com.gw.swipeback.WxSwipeBackLayout> نکته: اگر شما از WxSwipeBackLayout استفاده می کنید، باید آنرا در کلاس Application خود به صورت زیر وارد کنید: public class MainApplication extends Application { @Override public void onCreate() { super.onCreate(); WxSwipeBackActivityManager.getInstance().init(this); } } در قسمت onCreate مربوط به اکتیویتی کد زیر را وارد کنید: public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); //SwipeBackLayout is included in the layout setContentView(layoutId); SwipeBackLayout mSwipeBackLayout = (SwipeBackLayout) findViewById(R.id.swipeBackLayout); mSwipeBackLayout.setDirectionMode(SwipeBackLayout.FROM_LEFT); mSwipeBackLayout.setMaskAlpha(125); mSwipeBackLayout.setSwipeBackFactor(0.5f); mSwipeBackLayout.setSwipeBackListener(new SwipeBackLayout.OnSwipeBackListener() { @Override public void onViewPositionChanged(View mView, float swipeBackFraction, float SWIPE_BACK_FACTOR) { } @Override public void onViewSwipeFinished(View mView, boolean isEnd) { } }); } یا public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); SwipeBackLayout mSwipeBackLayout = new SwipeBackLayout(this); mSwipeBackLayout.addView(contentView); setContentView(mSwipeBackLayout); } یا public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); //SwipeBackLayout is not included in the layout setContentView(layoutId); mSwipeBackLayout = new SwipeBackLayout(this); mSwipeBackLayout.attachToActivity(this); } و حالا در قسمت them برای Style کد زیر را اضافه کنید <style name="Theme.Swipe.Back.NoActionBar" parent="AppTheme"> <item name="android:windowIsTranslucent">true</item> <item name="android:windowBackground">@android:color/transparent</item> </style> https://github.com/gongwen/SwipeBackLayout SwipeBackLayout-master.zip
  14. 1 like
    کتابخانه Expandable LinearLayout یک کتابخانه جذاب و جالب می باشد که هر سطر به صورت Expandable دارای یک منوی باز شونده می باشد.همانطور که در زیر مشاهده می کنید: قطعه کد زیر را در قسمت Dependency وارد کنید: allprojects { repositories { ... maven { url 'https://jitpack.io' } } } dependencies { compile 'com.github.iammert:ExpandableLayout:1.4.1' } قطعه کد زیر را در Layout خود وارد کنید: <iammert.com.expandablelib.ExpandableLayout android:id="@+id/el" android:layout_width="match_parent" android:layout_height="match_parent" app:parentLayout="@layout/layout_parent" app:childLayout="@layout/layout_child"/> Set renderer expandableLayout.setRenderer(new ExpandableLayout.Renderer<FruitCategory, Fruit>() { @Override public void renderParent(View view, FruitCategory model, boolean isExpanded, int parentPosition) { ((TextView) view.findViewById(R.id.tvParent)).setText(model.name); } @Override public void renderChild(View view, Fruit model, int parentPosition, int childPosition) { ((TextView) view.findViewById(R.id.tvChild)).setText(model.name); } }); Set listeners expandableLayout.setExpandListener(new ExpandCollapseListener.ExpandListener<FruitCategory>() { @Override public void onExpanded(int parentIndex, FruitCategory parent, View view) { //Layout expanded } }); expandableLayout.setCollapseListener(new ExpandCollapseListener.CollapseListener<FruitCategory>() { @Override public void onCollapsed(int parentIndex, FruitCategory parent, View view) { //Layout collapsed } }); Add section or children Section<FruitCategory, Fruit> section = new Section<>(); //defaut is false section.expanded = true; FruitCategory fruitCategory = new FruitCategory("Fruits"); Fruit fruit1 = new Fruit("Apple"); Fruit fruit2 = new Fruit("Orange"); section.parent = fruitCategory; section.children.add(fruit1); section.children.add(fruit2); expandableLayout.addSection(section); expandableLayout.addChild(fruitCategory, new Fruit("Grape")); Filter parent and children //make your parent class filterable class FruitCatefory implements Filterable{} //make your child class filterable class FruitCatefory implements Filterable{} Now, you can search in parents or children. Layout will be updated automatically. expendableLayout.filterParent("SEARCH PARAM") //or expendableLayout.filterChildren("SEARCH PARAM") https://github.com/iammert/ExpandableLayout ExpandableLayout-master.zip
  15. 1 like
    چیدمان Vega Scroll کتابخانه ای جذاب برای پیمایش RecyclerView می باشد که یک فریم جریان انیمیشن بسیار سبک زیبا است که در هنگام پیمایش محو می شود و head itemView را کاهش می دهد. قسمت زیر را به gradle اضافه کنید: compile 'com.stone.vega.library:VegaLayoutManager:1.0.1' xml file <android.support.v7.widget.RecyclerView android:id="@+id/main_recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" /> LayoutManager RecyclerView recyclerView = (RecyclerView) findViewById(R.id.main_recycler_view); recyclerView.setLayoutManager(new VegaLayoutManager()); RecyclerView.Adapter adapter = getAdapter(); recyclerView.setAdapter(adapter); https://github.com/xmuSistone/VegaLayoutManager VegaLayoutManager-master.zip
  16. 1 like
    توسعه دهنده های اندروید بهترین راه برای ارسال مقادیر از یک اکتیویتی به یک اکتیویتی دیگه و استفاده از Intent و متد putextra میدونند که واقعا هم بهترین و بهینه ترین راه برای ارسال اطلاعات بین دو صفحه هست. اما مشکی که این وسط وجود داره این هست که دستور putextra فقط داده های معمولی و ارسال میکنه, برای مثال اگر بخواهید بین دو صفحه یک آبجکت از کلاس خودتون ارسال کنید بصورت پیش فرض این امکان وجود ندارد و باید از اینترفیس های Parcelable و یا Serializable در کلاس خودمون استفاده کنید. در واقع تکنیک Parcelable سرعت به مراتب بیشتری نسبت به Serializable دارد. تکنیک Parcelable بصورت کامل در SDK اندروید قرار داده شده است و استفاده از Parcelableهم در جاوا وجود دارد بصورت پیش فرض به همین دلیل اکثرا برنامه نویسان اندروید از Parcelable استفاده میکنند. در بخش Parcelable برنامه نویسان می توانند کدهای شخصی شده بسیاری بنویسند و به همین خاطر از دید حافظه هم نسبت به Serializable بهینه تر هست در حالی که Serializable فقط از Java reflection API استفاده میکنه. پس متوجه شدیم که Parcelable برای اندروید بصورت ویژه طراحی شده و سرعت اجرا بیشتر به همراه مصرف حافظه کمتری نسبت به Serializable که اینترفیس استاندار برای جاوا هست داره. و میتونیم نتیجه بگیریم که اگر در پروژه های اندرویدی نیاز به ارسال آبجکت به دیگر اکتیویتی ها دارید استفاده از Parcelable منطقی تر هست. منبع: آتیس کد
  17. 1 like
  18. 1 like
    با سلام مرحله 1 : اضافه کردن Dependency compile 'com.airbnb.android:lottie:2.5.0-rc1' مرحله 2 : دانلود فایل انیمیشن از سایت زیر یا ساخت انیمیشن در افترافکت و ذخیره خروجی با فرمت json www.lottiefiles.com مرحله 3: ساخت LottieAnimationView درون فایل XML مینویسیم: <com.airbnb.lottie.LottieAnimationView android:layout_below="@+id/animation_view2" android:id="@+id/animation_view3" android:layout_width="match_parent" android:layout_height="170dp" app:lottie_autoPlay="true" app:lottie_fileName="beating_heart.json" app:lottie_loop="true" /> beating_heart.json فایلی است که درون ASSETS قرار داده ایم. و درون LottieAnimationView آن را به lottie_fileName می دهیم.
  19. 1 like
    یک کتابخانه بسیار جالب برای برش تصاویر در اندروید. uCrop-master.zip
  20. 1 like
    سلام دوستان عزیز من مبتدی هستم لطفا برای نوشتن کدهای این به من کمک کنید ممنونم من چهار TEXTNUMBER دارم که ورودی را از کاربر می گیره A,B,C,D و شش TEXTVIEW دارم که نتیجه محاسبه را به کاربر نشون میدهV1,V2,V3,V4,V5,V6 ویک دکمه که کاربر با کلیک روی اون نتیجه محاسبه را در ویوها ببینه فرمول محاسبه به این صورته V1=A*(B+C)*0.005 V2=V1+A*(B+C) V3=(V2*D)/100 V4=V3*1% V5=(V2+V3+V4)*9% V6=V1+V3+V4+V5 ممنون میشم منو راهنمایی کنید
  21. 1 like
    همون تب x86 Images کافیه و مرحله رو next بزنید .گزینه Nougat را انتخاب کنید
  22. 1 like
    لطفا یک اسکرین شات بزارید Gradle رو آنلاین کنید و sync کنید تا بروز شود sdk شما
  23. 1 like
    سلام دوست عزیز میتونی از این لینک ها شروع کنی http://javacup.ir/jc/javacup-training-videos/ http://p30download.com/fa/entry/40728/170926-دانلود-lynda-java-essential-training-آمو
  24. 1 like
    کد گرفتن آی پی وای فای: String ip = Formatter.formatIpAddress(((WifiManager) getSystemService(WIFI_SERVICE)).getConnectionInfo().getIpAddress()); permission هم بزار <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  25. 1 like
    یه چیزی شبیه این میشه اما اینجا کلا HardCode زدم ولی خوب باید خودت باهاش ور بری V1.setText((Integer.parseInt(A.getText.toString())*(Integer.parseInt(B.getText.toString())+Integer.parseInt(C.getText.toString()))*0.005).toString);
  26. 1 like
    از یک لایه ای پایین تر شما دیگه کد ها رو به اصطلاح نمیتونید high level ببنید و وصل میشن به کد های باینری DEX. باید زبان اسمبلی DEX رو بلد باشید.
  27. 1 like
    دونکته کلی راجع به linear layout رو در نظر نگرفتید: 1.خاصیت Linear layout ایجاد ابعاد و جایگاه های "نسبی" با توجه به صفت weight برای ویو های چایلد هست. نقاط اختصاص داده شده به چایلد ها در linear layout فیکس شده نیستند(ینی مثلا بگی دقیقا رو فلان پیکسل گوشی که میوفته رو فلان جای background ) برای این کار باید از ویو های خیلی ابتدایی تر که خواص دینامیکی بود مکانیزم تعیین مکان و یا اندازه نسبی چایلد ها رو ندارن استفاده کنی(مثل absolute layout و...). (( این کاره جالبی نیس)). 2. وقطی عکسی رو بکگراند میکنی به طور پیش فرض match parent میشه( برا همین تصاویرت کشیده شدن) . راه حل:عکس قفسه رو بزار تو image view بعد بزارش وسط یه relative layout. حالا اسکرول ویو رو هم بزار وسط همون relative layout. بعد کلشو بزار تو هرجا میخای.
  28. 1 like
    شما میتوانید بدیت صورت کار کنید <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/sub_screens_aus_hl" android:state_pressed="true"/> <item android:drawable="@drawable/sub_screens_aus" android:state_checked="true"/> <item android:drawable="@drawable/sub_screens_aus" android:state_focused="true" /> <item android:drawable="@drawable/sub_screens_aus_dis" /> </selector> و سپس <RadioButton android:button="@drawable/aus" android:layout_height="120dp" android:layout_width="wrap_content" />
  29. 1 like
  30. 1 like
    سلام فونت XB ZAR رو دانلود کنید و در پوشه Assets قرار دهید سپس به صورت زیر عمل کنید : Document doc = new Document(PageSize.A4, 36, 36, 90, 36); try { File root = android.os.Environment.getExternalStorageDirectory(); File dir = new File (root.getAbsolutePath() + "/pdf"); if(!dir.exists()) { dir.mkdirs(); } filename=System.currentTimeMillis()+".pdf"; File file=new File(dir,filename); FileOutputStream fOut = new FileOutputStream(file); PdfWriter.getInstance(doc, fOut); doc.open(); Paragraph p = new Paragraph(); BaseFont myFont = BaseFont.createFont("assets/font/XB Zar.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); Font paraFont= new Font(myFont, 12); p.setSpacingBefore(5); p.setSpacingAfter(5); p.setAlignment(Paragraph.ALIGN_CENTER); p.setFont(paraFont); p.add("متن فارسی"); PdfPTable table = new PdfPTable(1); PdfPCell cell = new PdfPCell(p1); cell.setBorder(0); cell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL); table.addCell(cell); doc.add(table); } catch (DocumentException de) { Log.e("PDFCreator", "DocumentException:" + de); } catch (IOException e) { Log.e("PDFCreator", "ioException:" + e); } finally { doc.close();
  31. 1 like
    import java.io.FileOutputStream; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Picture; import android.os.Bundle; import android.view.Menu; import android.webkit.WebView; import android.webkit.WebViewClient; public class MainActivity extends Activity { WebView w ; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); w = new WebView(this); w.setWebViewClient(new WebViewClient() { public void onPageFinished(WebView view, String url) { Picture picture = view.capturePicture(); Bitmap b = Bitmap.createBitmap( picture.getWidth(), picture.getHeight(), Bitmap.Config.ARGB_8888); Canvas c = new Canvas( b ); picture.draw( c ); FileOutputStream fos = null; try { fos = new FileOutputStream( "mnt/sdcard/yahoo.jpg" ); if ( fos != null ) { b.compress(Bitmap.CompressFormat.JPEG, 100, fos); fos.close(); } } catch( Exception e ) { } } }); setContentView(w); w.loadUrl("http://search.yahoo.com/search?p=android"); }
  32. 1 like
    از نسخه ۶ به بعد باید مجوز دسترسی در حال اجرا رو به برنامه بدی که جواب بده, مثل تلگرام که وقتی میخوایی واسه بار اول عکس بفرستی مجوز دسترسی به فایل ها رو ازت میخواد
  33. 1 like
  34. 1 like
    من اونو اشتباهی گذاشتم بجای اون باید اسم مدل خودتون رو بزارید model_List.add(model);
  35. 1 like
    یه همچنین کدی باید بنویسید برای دیتابیس : public List<Model> getData() { List<Model> model_List = new ArrayList<>(); String query = "select * Table"; Cursor cursor = database.rawQuery(query, null); while (cursor.moveToNext()) { Model model = new Model(); model.setS_id(cursor.getInt(cursor.getColumnIndex("s_id"))); model.setW_id(cursor.getInt(cursor.getColumnIndex("w_id"))); model.setA_id(cursor.getString(cursor.getColumnIndex("a_id"))); model_List.add(words_taha); } return model_List; } اتصال query دیتابیس به adapter List<Model> data=YourDatabaseClass.getData(); MyAdapter adapter=new MyAdapter(getApplicationContext(),data); recyclerview.setAdapter(adapter); recyclerview.setLayoutManager(new LinearLayoutManager(getApplicationContext(), LinearLayoutManager.VERTICAL, false));
  36. 1 like
    [rtl]سلام. میخوام یه سایتی به شمامعرفی کنم که در آن پر از آموزش های رایگان بازیسازی و برنامه نویسی اندروید و طراحی و مدل سازی 3 بعدی هست. امیدوارم مورد استفاده شماقرار بگیر.[/rtl]
  37. 1 like
    در این آموزش قصد ساخت یه اسپلش اسکرین را در اندروید داریم. اگه دیده باشید در بیشتر اپلیکیشن های اندرویدی صفحه ای به مدت چند ثانیه ظاهر میشود و بعد از آن به صفحه اصلی آپ میرویم .این اکتیویتی به عنوان اسپلش اسکرین شناخته میشود. برای شروع در مسیر res/Layout یک فایل به اسم Splash.xml درست میکنیم و کدهای مربوطه را مانند زیر مینویسیم : <?xml version="1.0" encoding="utf-8"?> <ImageView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/background" /> در این خطوط فقط یک LinearLayout را تعریف کرده ایم و یک تصویر را برای نمونه برای نمایش در کل صفحه قرار میدهیم. سپس در پکیج اصلی خود یک اکتیویتی به اسم SpalshScreen را ایجاد میکنیم. public class SpalshScreen extends Activity { @Overrideprotected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.splash); Handler handler = new Handler(); // run a thread after 2 seconds to start the home screen handler.postDelayed(new Runnable() { @Override public void run() { // make sure we close the splash screen so the user won't come // back when it presses back key finish(); // start the home screen Intent intent = new Intent(SpalshScreen.this,IpcameraActivity.class); startActivity(intent); } }, 4000); } } تنها دستورات مهمی که در این اکتیویتی هستن مربوط به Handler هستن که به مدت 4 ثانیه صبر میکند بعد دستور Intent را اجرا میکند و بطور اتوماتیک به اکتیویتی اصلی آپ میرویم. نکته مهم: در اسپلش اسکرین این میباشد که بعد از ورود به صفحه اصلی، با زدن کلید برگشت دیگر اکتیویتی اسپلش نمایش داده نمیشود و از برنامه خارج نمیشویم. امیدوارم مفید واقع شود... Splash.zip Splash.zip