Talent without working hard is nothing.

مشكله يصادفها الكثير من المطورين و المصممين ايضا في طول النص ان كان عنوان او مقالة .

يوجد حلول كثير , لهذه المشكلة :

يمكنك استخدام JavaScript  او JQuery  اوCSS  وحتى لغات اخرى مثل C# 

سوف نستخدم اليوم CSS  .

قم بانشاء ملف CSS جديد باسم a.css  واضف الكود التالي له : 


    display: table;
    table-layout: fixed;
    width: 100%;
    height: 250px;
    white-space: nowrap;
.truncate> * {
    display: table-cell;
    overflow: hidden;
    text-overflow: ellipsis;



وبنفس المجلد الذي قمت بانشاء الملف السابق فيه , قم بانشاء ملف HTML  جديد  واضف الكود التالي :


<!DOCTYPE html>
	<link rel="stylesheet" type="text/css" href="a.css">
<div class="truncate">
       It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

والناتج سيكون نص مرن مع حجم المتصفح ...


Read more..

 اليوم سوف نتكلم على الفرق بين

 .NET Framework and .NET Core 

ماذا يجب ان تختار عندما تريد تصميم  برنامجك القادم  ؟ 

.NET Framework and .NET Core ?

في هذه المقالة سوف نقارن بعض الفروقات بين هذه المنصات .


.NET Ecosystem 

لنقم بمراجعة هيكلية .NET Ecosytem  .

كما تشاهد في الشكل السابق .NET Ecosystm  يملك ثلاثة مكونات رئيسة , وهي :

 .NET Framework, .NET Core, and Xamarin. 


عندما تريد بناء برنامج خاص بالموبايل (iOS, Android, and Windows Mobile).

بستخدام لغة C#  ,   طبعا Xamrin  هو خيارك .

The .NET Framework 

تدعم Windows and Web applications و UWP   من اجل بناء تطبيقات على نظام ويندوز , بالاضافة إلى ASP.NET MVC  التى تمكننا من انشاء موقع الويب . على منصة >NET Framework  .


.NET Core

منصة مفتوحة المصدر و ايضا يمكنها العمل على اكثر من نظام تشغيل Windows, Mac, and Linux.

يمكنك بناء تطبيقات لتعمل على الانظمة السابقة , وايضا تدعم UWP  و ASP.NET Core  .فقط . 

UWP  تستخدم لبناء تطبيقات على Windows 10  . وتطبيقات  Wndows Mobile  .


كانت نظره سريعه على الفروقات . 

لكن ماذا نختار ؟

لكل منصه مزايها ,

.NET Framework

ستكون خيار جيد , لانك لا تريد تعلم تقنية جيده , بيئة عمل مستقره , ويمكنك انشاء تطبيقات Windows Forms or WPF

.NET Core

عندما تريد ان يكون تطبيقك يعمل على اكثر من نظام تشغيل , وتعشق منصات المصادر المفتوحة ... والطريق طويله امامك .







Read more..

You can use this adapter when your data source is a database Cursor. When using SimpleCursorAdapter, you must specify a layout to use for each row in the Cursor and which columns in the Cursor should be inserted into which views of the layout.

For example, if you want to create a list of people's names and phone numbers, you can perform a query that returns a Cursor containing a row for each person and columns for the names and numbers. You then create a string array specifying which columns from the Cursor you want in the layout for each result and an integer array specifying the corresponding views that each column should be placed −

String[] fromColumns = {ContactsContract.Data.DISPLAY_NAME,
int[] toViews = {R.id.display_name, R.id.phone_number};

When you instantiate the SimpleCursorAdapter, pass the layout to use for each result, the Cursor containing the results, and these two arrays −

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
   R.layout.person_name_and_number, cursor, fromColumns, toViews, 0);
ListView listView = getListView();

The SimpleCursorAdapter then creates a view for each row in the Cursor using the provided layout by inserting each from Columns item into the corresponding toViews view.

Read more..

Android ListView is a view which groups several items and display them in vertical scrollable list.

The list items are automatically inserted to the list using an Adapter.

 that pulls content from a source such as an array or database.

An adapter actually bridges between UI components and the data source that fill data into UI Component. Adapter holds the data and send the data to adapter view, the view can takes the data from adapter view and shows the data on different views like as spinner, list view, grid view etc.

The ListView and GridView are subclasses of AdapterView and they can be populated by binding them to an Adapter, which retrieves data from an external source and creates a View that represents each data entry.

Android provides several subclasses of Adapter that are useful for retrieving different kinds of data and building views for an AdapterView ( i.e. ListView or GridView). The common adapters are ArrayAdapter,Base Adapter,CursorAdapter, SimpleCursorAdapter,SpinnerAdapter and WrapperListAdapter. We will see separate examples for both the adapters.


You can use this adapter when your data source is an array. By default, ArrayAdapter creates a view for each array item by calling toString() on each item and placing the contents in a TextView. Consider you have an array of strings you want to display in a ListView, initialize a new ArrayAdapter using a constructor to specify the layout for each string and the string array −

ArrayAdapter adapter = new ArrayAdapter<String>(this,R.layout.ListView,StringArray);

Here are arguments for this constructor −

  • First argument this is the application context. Most of the case, keep it this.

  • Second argument will be layout defined in XML file and having TextView for each string in the array.

  • Final argument is an array of strings which will be populated in the text view.

Once you have array adapter created, then simply call setAdapter() on your ListView object as follows −

ListView listView = (ListView) findViewById(R.id.listview);

You will define your list view under res/layout directory in an XML file. For our example we are going to using activity_main.xml file.


Following is the example which will take you through simple steps to show how to create your own Android application using ListView. Follow the following steps to modify the Android application we created in Hello World Example chapter −


Following is the content of the modified main activity file src/com.example.ListDisplay/ListDisplay.java. This file can include each of the fundamental life cycle methods.

package com.example.ListDisplay;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class ListDisplay extends Activity {
   // Array of strings...
   String[] mobileArray = {"Android","IPhone","WindowsMobile","Blackberry",
      "WebOS","Ubuntu","Windows7","Max OS X"};
   protected void onCreate(Bundle savedInstanceState) {
      ArrayAdapter adapter = new ArrayAdapter<String>(this,
         R.layout.activity_listview, mobileArray);
      ListView listView = (ListView) findViewById(R.id.mobile_list);

Following will be the content of res/layout/activity_main.xml file −

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   tools:context=".ListActivity" >
      android:layout_height="wrap_content" >
Following will be the content of res/values/strings.xml to define two new constants −
<?xml version="1.0" encoding="utf-8"?>
   <string name="app_name">ListDisplay</string>
   <string name="action_settings">Settings</string>
Following will be the content of res/layout/activity_listview.xml file −
<?xml version="1.0" encoding="utf-8"?>
<!--  Single List Item Design -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
   android:textStyle="bold" >

Let's try to run our modified Hello World! application we just modified. I assume you had created your AVD while doing environment set-up. To run the app from Android studio, open one of your project's activity files and click Run Eclipse Run Icon icon from the tool bar. Android studio installs the app on your AVD and starts it and if everything is fine with your set-up and application, it will display following Emulator window −




Read more..

السلام عليكم ورحمة الله وبركاته .

سنكمل ما تبقى من اضافة اكواد إلى MainActivity Class  .

نقوم ياضافة التعاريف التالية :

private static final int RECOVERY_REQUEST = 1;
private YouTubePlayerView youTubeView;
private YouTubePlayer player;

 ومن ثم عمل ربط للمشغل الموجود في Layout , كما التالي :

youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);



ضمن التابع onInitializationSuccess   قم ياضافة الكود التالي , من اجل 

    player.cueVideo("Your Video link");

 مع استبدال باسم الفيديو الخاص بك  , من Youtube  .


التابع  onInitializationFailure في حال حدوث خطا اثناء تحميل الفيديو .

سيقوم بارجاع رسالة Toast  تنبهك بوجود خطا اثناء التحميل .


قم باضافة التابعين التاليين , من اجل عمل تهيئة لعمل البرنامج .


ملاحظة : 

يجب ان تقوم باضافة صلاحيات في ملف AndroidManifest.xml  

<uses-permission android:name="android.permission.INTERNET"/>


 من اجل السماح للبرنامج بالدخول للانترنت ..



يمكنك تحميل نسخة من الكود من GitHub  .

Read more..