Jump to content

Search the Community

Showing results for tags 'ანდროიდი'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • ფორუმი
    • ფორუმი
    • ზოგადი დისკუსიები
    • ტუტორიალი/Tutorial
    • მათემატიკა
    • ბიბლიოთეკა
    • კრიპტოგრაფია
    • კიბერ უსაფრთხოება
    • ელექტროინჟინერია
  • პროგრამები
    • დიზანის & 3D მოდელირება
    • პროგრამები/ software
    • დაცვა
  • Visual Studio
    • Visual Studio
    • C#
    • C და C++
    • ASP.NET/WPF/MVC
    • WCF
    • Quick Basic / Visual Basic
  • Web Development
    • HTML & CSS
    • Bootstrap
    • PHP & MySQL
    • Javascript
    • AngularJS
    • სხვადასხვა
    • SEO
    • ძრავების მიმოხილვა
  • Development
    • JAVA
    • Perl
    • Python
    • ბაზები
    • Other
    • Game Developer
    • მობილურის დეველოპერი
  • IT-Support
    • Unix/Linux
    • MS Windows
    • Apple /MAC
    • Android
    • Network
    • კომპიუტერის არქიტექტურა
  • ყიდვა-გაყიდვა/შეკვეთები
    • ყიდვა-გაყიდვა
    • შეკვეთები

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


ლოკაცია


ინტერესები

Found 6 results

  1. ახლა შევამჩნიე რომ თურმე არ ყოფილა ამ განყოფილებაში ასეთი თემა და გავხსენი... მოკლედ მაქვს ერთი პრობლემა და ამ სისტემაში კომპეტენტურ ადამიანებს ვთხოვ შველას. ჩემს ტელეფონს (Sony Xperia U) აქვს შემდეგი პრობლემა: Wi-Fi-ს როდესაც ვრთავ ტელეფონზე პირველი 5 წუთი კარგად მუშაობს, შემდეგ კიდე ინტერნეტშიც აღარ შედის და Wi-Fi-საც ვეღარ ვრთავ ტელეფონში თუ არ გამოვრთე და ჩავრთე. ხო კიდე... მუსიკას როდესაც ვუსმენ უცებ ირთვება და მერე ვეღარ ვრთავ (თუ ელემენტი არ ამოვუღე და არ ჩავუდე)... წინასწარ დიდი მადლობა
  2. ამ პროექტის გაკეთებით არაერთ საინტერესო რამეს ისწავლით პროცესში. ხოლო თუ რას ისწავლით კონკრეტულად ამას ბოლოს ვიტყვი ეს მარტივი აპლიკაცია ღილაკზე დაჭერისას სხვადასხვა, შემთხვევით შერჩეულ საინტერესო ფაქტს გამოგვიტანს ეკრანზე და პარალელურად შეცვლის უკანა ფონის ფერსაც. დასრულებულ აპლიკაციას ექნება ასეთი სახე (უსათაურო-ს გავლენაა, ბევრი არ იცინოთ): მოკლე მიმოხილვა დამწყებებისთვის გახსენით ანდროიდ სტუდიო და შექმენით ახალი პროექტი: File > New > New Project. 1) აირჩიეთ სახელი: მე ავირჩევ Fun App-ს და Next. 2) Target Android Devices-ში აირჩიეთ API 19: Android 4.4 (KitKat) და Next. 3) Activity-ში Empty Activity აირჩიეთ და Next. 4) Activity-ს სახელი შეცვალეთ fun_app-თი და მიაჭირეთ Finish-ს. ჩაირთვება ჩვენი ახალი პროექტი. სანამ ძირითადზე გადავიდოდეთ, ავხსნათ მარტივი რაღაცეები. თვალსაჩინოებისთვის აქ დავდებ სურათს: ეკრანზე გამოჩენილი ტელეფონის ვიზუალი გენერირდება activity_fun_app.xml ფაილიდან, რომელიც მოთავსებულია app > res > layout დირექტორიაში. როგორც ხედავთ, მარცხნივ არის პროექტის ფანჯარა, მის გვერდით ხელსაწყოების ფანჯარა. მარჯვენა მხარეს ზევით არის კომპონენტების ფანჯარა: აქ ჩანს ყველა ის კომპონენტი, რომელიც გამოყენებული გვაქვს. მარჯვნივ ქვემოთ არის თვისებების ფანჯარა. თვისებები შეგვიძლია შევცვალოთ ამ ფანჯრიდან, რა დროსაც activity_fun_app.xml ფაილში ავტომატურად ჩაიწერება შესაბამისი მნიშვნელობები; ან გადავიდეთ Text ტაბზე (ახლა ვართ Design ტაბზე) და ხელით ჩავწეროთ სასურველი მნიშვნელობები. თვალსაჩინოებისთვის, მოდით გადადით Text ტაბზე, შემდეგ დაბრუნდით უკან და უკანა ფონის მნიშვნელობა (background) შეცვალეთ #51b46d-ით, რაც უკანა ფონს აქცევს მწვანედ. შემდეგ გადადით ისევ Text ტაბში და ნახავთ რომ RelativeLayout-ში android:background იქნება ჩვენი შეყვანილი მნიშვნელობა. Fun App რომ აწერია ლურჯ ფონზე, მაგას ქვია ექშენ ბარი (Action bar). ეგ გამოიყენება მენიუებისთვის, მაგრამ ჩვენ არაფერში გვჭირდება ასე რომ მოვშალოთ. ამისთვის, ტელეფონის ზემოთ რომ აწერია AppTheme, მაგას მიაჭირეთ და გამოსულ ფანჯარაში აირჩიეთ Appcompat.Light.NoActionbar. ვნახავთ რომ ექშენ ბარი გაქრება, მაგრამ თუ აპლიკაციას გაუშვებთ ის ისევ ჩანს. საქმე იმაშია, რომ თემა იცვლება styles.xml ფაილიდან, რომელიც მოთავსებულია app > res > values ფოლდერში. გავხსნათ ეს ფაილი და >> style name="AppTheme" parent-ში შევცვალოთ DarkActionBar და ჩავწეროთ NoActionBar. ეს ხაზი მთლაინობაში უნდა იყოს ასეთი: <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">. აპლიკაციის გაშვება ხდება მწვანე სამკუთხედით, რომელზეც მაუსს თუ გააჩერებთ Run App დაეწერება. მოკლედ, ახლა აპლიკაციას თუ გავუშვებთ ვნახავთ, რომ ექშენ ბარი გამქრალია. კომპონენტები ლაგდება ლეიაუთზე (layout - ქართულად არ ვიცი რას ეძახიან). ის რამდენიმენაირია სხვადასხვა საჭიროებიდან გამომდინარე. ჩვენ ვიყენებთ RelativeLayout-ს. ამ წუთას, მასზე მხოლოდ ერთი კომპონენტია - TextView - რომელშიც არის ტექსტი - Hello World! ჩვენ ეს არაფერში გვჭირდება, ასე რომ მონიშნეთ ხელსაწყო ტელეფონის ეკრანზე და Delete-ს დააჭირეთ. მეორე ნაწილი ვისაც აპლიკაციის ნახვა უნდა და გასაკეთებლად დრო არ აქვს, ავტვირთე მთლიანი პროექტი და ესაა ლინკი. გადმოწერეთ და გადახედეთ. PDF ფაილი, ვისაც მთლიანად უნდა ტუტორიალი: https://mega.nz/#!HBVEgb7K!SZHvulB0e3qoCULZ55eQAnOQFPaMw3WEi59qVH5z7g8
  3. ინტერაქტიული მოთხრობა - ნაწილი 1 ამ კურსში ჩვენ გავაკეთებთ ინტერაქტიული მოთხრობის აპლიკაციას. ამ პალიკაციაში პირველ გვერდზე იქნება მთავარი სურათი, სახელის ჩასაწერი ველი და მეორე გვერდზე გადასვლის ღილაკი. მომდევნო გვერდებზე იქნება სურათი, მოთხრობის გარკვეული ნაწილი და ორი ღილაკი, მოთხრობის სურვილისამებრ გასაგრძელებლად. სულ ბოლო გვერდზე კი სურათი, მოთხრობის დასასრულის ტექსტი და თავიდან დაწყების ერთი ღილაკი. ჩვენს ინტერაქტიულ მოთხრობას ერქმევა სიგნალები მარსიდან და დატექსტი იქნება ინგლისურად (თარგმნის დრო არ მაქვს). აპლიკაციის გვერდები შეგიძლიათ იხილოთ სურათზე: თუ დამწყები ხართ და აქამდე არაფერი დაგიწერიათ, მაშინ აჯობებს ჯერ წინა კურსი გაიაროთ, რადგან იგივე ახსნებს არ გავიმეორებ. ესეც წინა კურსის ლინკი: http://scripts.ge/topic/2145-%E1%83%9B%E1%83%90%E1%83%A0%E1%83%A2%E1%83%98%E1%83%95%E1%83%98-%E1%83%90%E1%83%9C%E1%83%93%E1%83%A0%E1%83%9D%E1%83%98%E1%83%93-%E1%83%90%E1%83%9E%E1%83%9A%E1%83%98%E1%83%99%E1%83%90%E1%83%AA%E1%83%98%E1%83%90-%E1%83%9C%E1%83%90%E1%83%AC%E1%83%98%E1%83%9A%E1%83%98-1/ დავიწყოთ. შექმენით ახალი პროექტი და სახელად დაარქვით Interactive Story. მინიმალური SDK ვერსიად აირჩიეთ API 19: 4.4.4 KitKat. შემდეგ გვერდზე ექთივითის სახელად დაარქვით MainActivity, რადგან ეს იქნება მთავარი ექთივითი და სახელიც შესაბამისი ჰქონდეს. მიაჭირეთ Finish-ს და გაიხსნება ჩვენი ახალი პროექტი. ImageView მთავარ გვერდზე ყოველი გვერდისთვის ჩვენ გვჭირდება სურათები. საჭირო სურათები ავტვირთე - https://mega.nz/#!XZMGEATL!jz2TT_uZLqOnGjv2l5CX33yiHEB23VYQrPDjCEnuxxI - მეგაზე და გადმოწერეთ. გადმოწერის შემდეგ ნახავთ რომ მასში 4 ფოლდერია, ერთნაირი, მაგრამ სხვადასხვა ზომის სურათებით. რა თქმა უნდა ჩვენ შეგვეძლო მხოლოდ ერთი ზომის სურათები გამოგვეყენებინა, მაგრამ მათი დაყოფა ისე როგორც აქ გვაქვს, მიღებული პრაქტიკაა და გეტყვით რატომაც. დღეს უამრავი სხვადასხვა ზომის მოწყობილობა არსებობს, ზოგის ეკრანი პატარაა, ზოგის კი ძალიან დიდი. ერთი ზომის სურათები რომ ავიღოთ მხოლოდ, თუ პატარებია დიდ ეკრანზე ცუდად გამოჩნდებიან, ხოლო თუ დიდებია, პატარა ეკრანიან ტელეფონებში არასაჭიროდ დიდ ადგილს დაიკავებენ. სწორედ ამიტომ უმჯობესია სურათები იყოს ზომებად დაყოფილი და შესაბამის ფოდლერებში მოქცეული. ასეთნაირად დალაგებულ სურათებს ანდროიდი თავისი ეკრანის ზომის მიხედვით აარჩევს ავტომატურად. ეს ფოლდერები ადრე drawable-თი იწყებოდა, მაგრამ ვიზუალ სტუდიოს ფაილების სისტემა შეიცვალა ახალ ვერსიაში და ახლა mipmap-ით იწყებიან. mipmap ფოლდერი არის app >> res დირექტორიაში. მოძებნეთ ის პროექტში, მაუსის მარჯვენა კლიკი და Show in Explorer. გახსნილ ფოლდერში არსებულ დირექტორიებს შეცვლით არქვიში რაც არის იმით. ამის შემდეგ ვუბრუნდებით პროექტს და თუ Design ტაბზე არ ხართ, გადადით მაგ ტაბზე. ახლა ხელსაწყოებიდან ვირჩევთ ImageView-ს და გადაგვაქვს ის ეკრანზე ისე რომ მარცხნივ და ზევით იყოს გასწორებული. ამას იმით გავიგებთ, რომ მარცხნივ და ზევით სქელი მწვანე ხაზები გაჩნდება: ახლა სურათი უნდა ჩავსვათ აქ, ამიტომ ყურადღება გადაგვაქვს თვისებების ფანჯარაზე და ვპოულობთ src-ს. ვაკლიკებთ მის გასწვრივ ღილაკზე და გამოსულ ფანჯარაში გადავდივართ Project ტაბში. აქ კი ვირჩევთ შესაბამის სურათს და OK: ამის შემდეგ ისევ თვისებების ფანჯარაში მოვახდინოთ რამდენიმე ცვლილება: 1. id – titleImageView 2. layout:width – match_parent 3. scaleType – fitXY 4. adjustViewBounds - მონიშნეთ პტიჩკა როგორც ვხედავთ სურათი არაა ბოლომდე კარგად დასმული, კერძოდ გვერდებზე და ზემოთ ცარიელი ადგილებია. ეს იმიტომ რომ პადინგი გვაქვს მოსაშორებელი. მოდი ეს საქმე xml-დან გავაკეთოთ. ამისთვის გადავდივართ Text ტაბზე და ვშლით შესაბამის 4 ხაზს. აქვე ვხედავთ, რომ ImageView ტეგი ღია ყვითელი ფერისაა და მაუსს თუ გადავატარებთ დაგვიწერს contentDescription არ გაქვს მითითებულიო. მოდი დავამატოთ ის: და ბრჭყალებს შორის ჩაწერეთ Signals from Mars. სახელის ველი და ღილაკი ჩვენ დარწმუნებული უნდა ვიყოთ, რომ სხვადასხვა ზომის მოწყობილობებზე ჩვენი აპლიკაცია კარგად იმუშავებს. ეს იმას ნიშნავს, რომ ჩვენი ხელსაწყოები ერთმანეთთან და გვერდებთან გარკვეულ თანაფარდობაში უნდა იყოს, რასაც სკალირებას ეძახიან. ჩვენ გვჭირდება ღილაკი და სახელის ჩასაწერი ტექსტის ველი. კარგი იქნება თუ პოზიციონირებას დავიწყებთ ქვევიდან. ამიტომაც, მოკიდეთ ღილაკს ხელი და გადმოიტანეთ ის ეკრანზე ქვედა მარცხენა კუთხეში ისე, რომ ქვედა და მარცხენა მხარესთან მწვანე ხაზები გაჩნდეს. ახლა გადავიდეთ თვისებების ფანჯარაში და შევცვალოთ ზოგიერთი მონაცემი: 1. layout:width – match_parent 2. id – startButton 3. text – Start Your Adventure ამ ღილაკზე კიდევ მოგვიწევს პატარა რაღაცის გაკეთება, მაგრამ დროებით დავტოვოთ ასე და დავამატოთ სახელის ჩასაწერი ველი. ამისთვის ჩამოსქროლეთ ცოტა, მოკიდეთ ხელი Person Name-ს და დააგდეთ ის მარცხენა კუთხეში ღილაკის ზემოთ. ეს ველი არის EditText ტიპის, მას აქვს ყველა ის თვისება რაც TextView-ს და კიდევ დამატებით ტექსტზე მანიპულაციების თვისებები. ახლა ჩვენ ვხედავთ, რომ ყველაფერი არც ისე კარგად ზის, კერძოდ სახელის ჩასაწერი ველი სურათზეა გადაფარებული. ასეთი პრობლემები ხშირად ხვდებათ დიზაინერებს. მისი მოგვარების რამდენიმე გზა არსებობს, მათ შორის სიმაღლეში სურათის ზომის დაპატარავება, მაგრამ ჩვენ ამას არ ვიზამთ. ზევით გვაქვს ექშენ ბარი, რომელიც არაფერში არ გვჭირდება ამ პროექტში, ამიტომაც მოვაცილებთ მას და მივიღებთ სათანადო ზომის ქვედა მხარეს, რაც საკმარისი იქნება. თუმცა მანამდე, მივხედოთ Person name თვისებებს და პირველ რიგში layout:width დააყენეთ match_parent-ზე. შემდეგ გადადით text ტაბზე და თუ EditText ტეგში ყველაფერი ისე არაა როგორც სურათზე მაშინ შეცვალეთ ისე, რომ დაემთხვას სურათზე არსებულს: აქ ვხედავთ, რომ სახელის ჩასაწერი ველი ისეა პოზიციონირებული, რომ ის მუდმივად ღილაკის ზევით იქნება - android:layout_above="@+id/startButton". ახლა დავბრუნდეთ ისე design ტაბზე და შევცვალოთ შემდეგი თვისებები: 1. id – nameEditText 2. text - წაშალეთ აქ რაც წერია 3. hint – Enter your name to begin 4. maxLength – 30 ტექსტს რომ წავშლით, უსერი ვერ მიხვდება ეს რა ველია, მას რაიმენაირად უნდა მივანიშნოთ. ეს შეიძლება მოხდეს ლეიბელით ან ჰინთის (hint) მეშვეობით. ჩვენ ამ უკანასკნელს ვიყენებთ. Action bar-ის მოშორება და Portrate Mode როგორც ზემოთ ვთქვით, სურათის ქვემოთ ადგილის გასათავისუფლებლად ჩვენ უნდა მოვაცილოთ Action Bar, რომელიც ამ პროექტში არ გვჭირდება. ამისთვის საჭიროა რომ შევცვალოთ თემა. თემის შესაცვლელად კი უნდა გავხსნათ styles.xml ფაილი, რომელიც არის app > res > values ფოლდერში. მოკლედ გახსენით ეს ფაილი და DarkActionBar შეცვალეთ NoActionBar-ით. საბოლოოდ უნდა მიიღოთ ასეთი ხაზი: <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> ახლა დიზაინზე თუ გადავალთ ვნახავთ რომ სურათის ქვემოთ საკმარისი ადგილია სახელის ჩასაწერად. მოსაგვარებელი დაგვრჩა ერთი საკითხი. კერძოდ, აპლიკაცია ჩვეულებრივ არის პორტრეტის სახით. როდესაც ტელეფონს ვატრიალებთ, აპლიკაცია იღებს ლანდშაპტურ სახეს. ჩვენს შემთხვევაში ეს დიზაინს არევს, ამიტომ ეს ფუნქციონალი ჯობია გამოვრთოთ. ამისთვის უნდა გავხსნათ AndroidManifest.xml ფაილი, რომელიც არის app > manifest დირექტორიაში. გახსნილ ფაილში მოვძებნოთ activity ტეგი და ჩავამატოთ შესაბამისი ხაზი - android:screenOrientation="portrait". საბოლოოდ უნდა მივიღოთ ასეთი კოდი: <activity android:name=".MainActivity" android:screenOrientation="portrait"> ამის შემდეგ, რამდენიც არ უნდა ვატრიალოთ ტელეფონი ჩვენი აპლიკაცია პორტრეტულ სახეს არ შეიცვლის და შედეგად არ აირევა დიზაინი. კოდი - სახელის მიღება მაშასადამე, შესაბამის ველში შეგვყავს სახელი და როგორ უნდა მივიღოთ ის. ამისთვის უნდა დავწეროთ მარტივი კოდი. წინა კურსიდან უკვე იცით ალბათ, რომ ჯერ უნდა შევქმნათ წევრ ცვლადები onCreate() მეთოდის ზევით, ხოლო შემდეგ მოვახდინოთ მათი ინიციალიზება onCreate() მეთოდის შიგნით. ჩვენ გვჭირდება ორი ცვლადი, ერთი სახელისთვის და მეორე ღილაკისთვის, ამიტომაც დავწეროთ კოდი: private EditText mNameField; private Button mStartButton; ამის შემდეგ მათი ინიციალიზება მოვახდინოთ მეთოდის შიგნით. წინა პროექტიდან ესეც იცით როგორ უნდა მოხდეს: mNameField = (EditText) findViewById(R.id.nameEditText); mStartButton = (Button) findViewById(R.id.startButton); და ბოლოს გვჭირდება ღილაკზე დაჭერის კოდი. წინა პროექტში ჩვენ მოვიქეცით ასე: ჯერ შევქმენით View.OnClickListener() ცვლადი, ხოლო შემდეგ ეს ცვლადი გამოვიყენეთ mStartButton.setOnClickListener მეთოდში. არსებობს მეორე ვარიანტიც რომელსაც აქ გამოვიყენებთ. კერძოდ, ამ მეთოდის შიგნით ჩვენ შეგვიძლია შევქმნათ შიდა კლასი და იქვე ჩავწეროთ ღილაკზე დაკლიკების კოდი. ეს იმას ნიშნავს რომ ცვლადის შექმნა აღარ მოგვიწევს და შესახედავადაც უფრო მარტივად აღსაქმელია. მოკლედ ესეც კოდი: mStartButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String name = mNameField.getText().toString(); Toast.makeText(MainActivity.this, name, Toast.LENGTH_LONG).show(); } }); აქ ღილაკზე დაკლიკების შემდეგ Toast.makeText-ის მეშვეობით გამოჩნდება ჩვენი ჩაწერილი სახელი. ტოსტის პირველი პარამეტრი არის კონტექსტი, ანუ ის საიდანაც ხდება გამოძახება. ჩვეულებრივ ვიყენებთ ხოლმე this ქეივორდს, იმიტომ რომ კონტექსტი იგივე კლასია სადაც კოდს ვწერთ. ამ შემთხვევაში ეს ერორს მოგვცემს, რადგან შიდა კლასს ამის აღქმა არ შეუძლია და ვერ იგებს საიდან მოდის ეს კონტექსტი და რა კონტექსტია. ამიტომაც საჭირო ხდება დაკონკრეტება MainActivity.this ასეთნაირად, ანუ ჯერ ვუთითებთ ჩვენი კონტექსტური კლასის სახელს, მერე წერტილი და მერე ქეივორდი. მეორე პარამეტრი არის ტექსტი, რომელიც უნდა გამოიტანოს. ჩვენს შემთხვევაში ის ტექსტური ტიპის ცვლადია. მესამე პარამეტრი არის დრო, რამდენი ხანიც ტექსტი გამოჩნდება ეკრანზე. ის არის ორნაირი მოკლე და გრძელი. მოკლე 2 წამს გრძელდება, ხოლო გრძელი - 5 წამს. ჩვენ ვიყენებთ მეორეს. რაც შეეხება სულ ბოლო show(); მეთოდს, სწორედ ეს ახდენს მესიჯის ეკრანზე გამოტანას. მის გარეშე ტოსტი შეიქმნება მაგრამ ვერ დავინახავთ ჩვენ. ----------------- პირველი ნაწილი ამით დასრულდა. მომდევნო ნაწილში ვისწავლით Intent-ებს, ახალი Activity-ს შექმნასა და მასზე მუშაობას. ასევე, ერთი Activity-დან მონაცემების გადატანას მეორეზე და მეორეს მიერ მათ მიღებასა და დამუშავებას. შეჯამება: ამ ნაწილში ჩვენ გავეცანით სურათებს და მათზე მუშაობას. გავიხსენეთ ტექსტზე და ღილაკზე მუშაობა. გავიგეთ ღილაკზე დაკლიკების შიდა კლასის შესახებ. გავეცანით სკალირებას, ვნახეთ როგორ ლაგდება ხელსაწყოები ერთმანეთთან მიმართებაში და ვნახეთ შესაბამისი კოდი xml ფაილში. ჩვენ ასევე ვისწავლეთ როგორ ხდება ექშენ ბარის მოშორება და Portrate Mode-ის დაყენება.
  4. ნაწილი მეორე მარტივი ანდროიდ აპლიკაცია - ნაწილი 3 პროგრამული ნაწილი ობიექტორიენტირებულ დაპროგრამებაში არსებობს რამდენიმე პრინციპი. ერთი მათგანია კლასის მიერ ერთ ობიექტზე ორიენტირებული კონკრეტული ამოცანის შესრულება, რაც იმას ნიშნავს რომ კლასი უნდა ასრულებდეს ერთ კონკრეტულ ამოცანას მაგალითად, აგენერირებდეს უკანა ფონის ფერებს; მეორე საყურადღებო პრინციპია DRY – Don’t Repeat Yourself - რაც იმას ნიშნავს, რომ ერთი კოდი არ უნდა გავიმეოროთ და რამდენიმე ადგილზე არ უნდა დავწეროთ. ამის მაგივრად, კოდს ვწერთ ერთ ადგილზე და შემდეგ ვიყენებთ მას მრავალჯერ, სადაც დაგვჭირდება იქ. ანდროიდ პროგრამირებაში წევრ ცვლადების (member variables) სახელების დარქმევისას, მათ წინ უწერენ m-ს ანუ member. ჩვენ შეგვიძლია ანდროიდ სტუდიოს პარამეტრები ისე შევცვალოთ, რომ როდესაც ცვლადის სახელის დაწერისას m-ს ავკრეფთ, ავტომატურად შემოგვთავაზოს სავარაუდო მნიშვნელობები, რაც ხშირ შემთხვევაში გამოსადეგია. ამისთვის, შევდივართ File > Settings > Editor > Code Style > Java, შემდეგ გადავდივართ code Generation სულ ბოლოში და Field-ში Name prefix-ად ვწერთ m-ს. პროგრამულად ამ აპლიკაციისთვის ჩვენ დაგვჭირდება 2 კლასი, ერთი ფაქტების გენერირებისთვის და მეორე ფერების დასაგენერირებლად და მისაღებად. მოდით, პირველ რიგში ეს კლასები შევქმნათ. დავიწყოთ ფაქტების კლასით. კლასის შესაქმნელად, java ფოლდერის ქვედა ფოლდერზე მაუსის მარჯვენა კლიკი, შემდეგ New > Java Class. და ჩაწერეთ კლასის სახელი. მიღებულია, რომ კლასის სახელი უნდა იწყებოდეს დიდი ასოთი. მე სახელად ავირჩევ FactBook-ს. გაიხსნება ახალი კლასი. ამ კლასში ჩვენ გვჭირდება string ტიპის ფაქტების მასივი, მოდით გავაკეთოთ ის. private String[] mFacts = { "kaci izmoreba roca dilit igvidzebs, principshi qalic egrea...", "usatauros namdvili saxelcodeba 'usataur' aris - dinosauris variantshi.", "mitnikebis garda, tavidan yvela hackeri nubi iyo.", "facebooki gamatexine - nubebis sayvareli frazaa.", "tu sibneleshi klaviaturas xels daartyam - fgvbsdfkbhv.", "jer kidev araerti adamiani iyenebs parolad 123456 da 123123-s.", "the quiet you become, the more you are able to hear.", "erti temis dadebas profesoroba ar schirdeba.", "androidis qveganyia shesaqmneli.", "#ATGHCVote Exec0d3." }; ამის გარდა ჩვენ გვჭირდება getFact() მეთოდი, რომელიც ჩვენი ფაქტების მასივიდან შემთხვევით შერჩეულ ფაქტს დაგვიბრუნებს. ეს ნიშნავს რომ გვჭირდება Random კლასის ობიექტი და String ტიპის ცვლადი არჩეული ფაქტის შესანახად. შევქმნათ ისინი. Random randomGenerator = new Random(); String fact = ""; ახლა კი შევქმნათ თავად მეთოდი. ამ მეთოდით შემთხვევითი პრინციპით შევარჩევთ ფაქტებს, მაგრამ რამდენი ფაქტი უნდა მივუთითოთ? ახლა არის 10. ჩვენ 10 რომ ჩავწეროთ, შემდეგ შეიძლება კიდევ მოგვინდეს ფაქტების დამატება. ამიტომაც კონკრეტულად განსაზღვრული რიცხვის მაგივრად, ჩავწეროთ მასივის სიგრძე და ეს პრობლემა აღარ შეგვაწუხებს. public String getFact(){ int randomNumber = randomGenerator.nextInt(mFacts.length); fact = mFacts[randomNumber]; return fact; } ახლა დროა ფერების კლასსაც მივხედოთ. შევქმნათ ის წინა კლასის მსგავსად და დავარქვათ სახელი. მე დავარქმევ ColorWheel-ს. ამ კლასში გვჭირდება String მასივი, რომელშიც ჩაწერილი იქნება ფერები ჰექსებში. private String[] mColors = { "#39add1", // light blue "#3079ab", // dark blue "#c25975", // mauve "#e15258", // red "#f9845b", // orange "#838cc7", // lavender "#7d669e", // purple "#53bbb4", // aqua "#51b46d", // green "#e0ab18", // mustard "#637a91", // dark gray "#f092b0", // pink "#b7c0c7" // light gray }; გარდა ამისა, წინა კლასის მსგავსად გვჭირდება Random ობიექტი და ცვლადი, რომელსაც მივანიჭებთ არჩეული ფერის მნიშვნელობას. Random randomGenerator = new Random(); String color; წინა კლასისგან განსხვავებით, აქ getColor() მეთოდმა უნდა დააბრუნოს int ტიპის მნისვნელობა, რადგან უკანა ფონის და ტექსტისთვის ფერების მისანიჭებლად გამოიყენება სწორედ int ტიპის მნიშვნელობა. შესაბამისად გამოდის რომ ჰექსში დაწერილი ფერის მნიშვნელობები უნდა გადავიყვანოთ int-ში რაც მარტივად ხდება. ესეც მეთოდი: public int getColor(){ int randomNumber = randomGenerator.nextInt(mColors.length); color = mColors[randomNumber]; int colorAsInt = Color.parseColor(color); return colorAsInt; } ეს ორი კლასი მორჩა. ეხლა გადავიდეთ მთავარზე. Fun_app.java კლასში უნდა შევქმნათ ჩვენი კლასის ობიექტები. ობიექტების შექმნა ასე ხდება: private FactBook mFactBook = new FactBook(); private ColorWheel mColorWheel = new ColorWheel(); ანდროიდ პროგრამირებაში კომპონენტებზე სამუშაოდ გვჭირდება ცვლადები, რომლებსაც მივანიჭებთ კომპონენტებს და შემდეგ ამ ცვლადებზე მოვახდენთ ცვლილებებს, რაც თავის მხრივ აისახება კომპონენტებზე. ეს ხდება findViewById(R.id.componentId)-ის მეშვეობით. ცვლადების განსაზღვრა ხდება onCreate მეთოდამდე, ხოლო გამოყენება ანუ კომპონენტების მინიჭება onCreate() მეთოდში. ეს არის სწორედ ის მეთოდი, რომელიც პროგრამის გაშვების შემდეგ იწყებს მუშაობას. ეს მეთოდი აქ იგივეა რაც მაგალითად C#-ში main მეთოდი. ჩვენ გვჭირდება სამი ცვლადი: ერთი ტექსტისთვის, ერთი ღილაკისთვის და ერთიც უკანა ფონის შესაცვლელად, რაც ამ შემთხვევაში არის RelativeLayout-ის უკანა ფონი. მოკლედ, განვსაზღვროთ ცვლადები: private TextView mFactTextView; private Button mShowFactButton; private RelativeLayout mRelativeLayout; მოვახდინოთ ამ ცვლადებისთვის შესაბამისი კომპონენტების მინიჭება. არ დაგავიწყდეთ ეს ხდება onCreate() მეთოდში super.onCreate(savedInstanceState); setContentView(R.layout.activity_fan_facts); ამის შემდეგ. ესეც მინიჭება: mFactTextView = (TextView) findViewById(R.id.factTextView); mShowFactButton = (Button) findViewById(R.id.showFactButton); mRelativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout); აქ ერორს გვიჩვენებს, რადგან RelativeLayout-სთვის აიდი არ მიგვინიჭებია. მოდით გადავიდეთ Text ტაბზე და RelativeLayout ტეგის შიგნით გავაკეთოთ შესაბამისი ჩანაწერი: android:id="@+id/relativeLayout". რის შემდეგაც ერორი უნდა გასწორდეს. ახლა ჩვენ გვჭირდება OnClickListener ობიექტი, რომელსაც შემდეგ გადავცემთ setOnClickListener() მეთოდს. მას რამდენიმე ვარიანტი აქვს და ჩვენ გვჭირდება View.OnClickListener. სახელის აკრეფას რომ დაიწყებთ, რამდენიმე ვარიანტს გიჩვენებთ და თქვენ სწორედ ამ ვარიანტს აირჩევთ, რომელიც წესით ზევიდან მეორე უნდა იყოს. თქვენ საბოლოოდ უნდა მიიღოთ ასეთი რამ: View.OnClickListener listener = new View.OnClickListener() { @Override public void onClick(View v) { } }; როგორც ხედავთ გვაქვს onClick() მეთოდი. ღილაკზე დაჭერისას რაც გვინდა რომ მოხდეს, უნდა ჩაიწეროს სწორედ ამ მეთოდში. ჩვენ გვინდა რომ მივიღოთ ფაქტი და ჩავწეროთ String ტიპის ობიექტში. ასევე მივიღოთ ფერი და ჩავწეროთ int ტიპის ობიექტში. შემდეგ მიღბული ტექსტი უნდა ჩავწეროთ შესაბამისი კომპონენტის ცვლადში და მოვახდინოთ კომპონენტის აფდეითი. იგივენაირად მოვახდინოთ უკანა ფონის ფერისა და ღილაკის ტექსტის ფერის შესცვლა. ეს ყველაფერი კოდის სახით ასე მოხდება: String fact = mFactBook.getFact(); int color = mColorWheel.getColor(); mFactTextView.setText(fact); mRelativeLayout.setBackgroundColor(color); mShowFactButton.setTextColor(color); და ბოლოს ღილაკზე დავაყენოთ listener setOnClickListener()-ის გამოყენებით: mShowFactButton.setOnClickListener(listener); ახლა თქვენ უნდა გქონდეთ მუშა პროგრამა. ამ კლასის სრული კოდი უნდა იყოს ასეთი: public class fun_app extends AppCompatActivity { private FactBook mFactBook = new FactBook(); private ColorWheel mColorWheel = new ColorWheel(); private TextView mFactTextView; private Button mShowFactButton; private RelativeLayout mRelativeLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fun_app); mFactTextView = (TextView) findViewById(R.id.factTextView); mShowFactButton = (Button) findViewById(R.id.showFactButton); mRelativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout); View.OnClickListener listener = new View.OnClickListener() { @Override public void onClick(View v) { String fact = mFactBook.getFact(); int color = mColorWheel.getColor(); mFactTextView.setText(fact); mRelativeLayout.setBackgroundColor(color); mShowFactButton.setTextColor(color); } }; mShowFactButton.setOnClickListener(listener); } } დასრულდა ჩვენი ტუტორიალი... ამ ნაწილში გავიგეთ პროგრამირების ორი მნიშნელოვანი პრინციპის შესახებ. ვისწავლეთ კლასების შექმნა და გამოყენება, ვნახეთ რა არის და როგორ გამოიყენება ცვლადები და მასეივები. ვისწავლეთ ცვლადებისთვის შესაბამისი კომპონენტების მისადაგება და მათზე სხვადასხვა მოქმედებების განხორციელება, OnClickListener ობიექტის შექმნა და ღილაკის ასამუშავებელი კოდის წერა.
  5. პირველი ნაწილი მარტივი ანდროიდ აპლიკაცია - ნაწილი 2 ვიზუალი გადავიდეთ ვიზუალური მხარის რედაქტირებაზე. პირველ რიგში უნდა ვიცოდეთ, რომ კომპონენტები ერთმანეთთან და ლეიაუთებთან მიმართებაში ლაგდებიან, ამიტომ კომპონენტების სქრინზე დაგდებისას ყურადღება მიაქციეთ ჩემს ინსტრუქციებს, რომ შემდეგ არეული არ გამოგივიდეთ. ჩვენ დაგვჭირდება 2 TextView და 1 Button. პირველ რიგში მოკიდეთ ხელი TextView-ს, გადაიტანეთ ეკრანზე და ჯერ ხელი არ გაუშვათ. ის უნდა დააგდოთ ზედა მარცხენა კუთხეში. როდესაც საჭირო ადგილზე მიიტანთ ამ კომპონენტს, გაჩნდება ორი მწვანე სქელი ხაზი - ზევით და მარცხნივ. ახლა შეგიძლიათ გაუშვათ ხელი. 1. შევცვალოთ ტექსტი. ამისთვის თვისებების ფანჯარაში მოძებნეთ text თვისება და ჩაწერეთ: „Karoche Gitxra Ra…”. 2. შევცვალოთ ზომა. ამისთვის თვისებების ფანჯარაში ნახეთ textSize და ჩაუწერეთ მანდ 24sp. რა არის sp? ეს არის Scale Independent Pixels და ის უზრუნველყოფს ტექსტის კარგად გამოჩენას სხვადასხვა ზომის მოწყობილობებზე. გარდა ამისა ის მხედველობაში იღებს თქვენს ტელეფონში დაყენებულ ფონტის ზომას და ამის მიხედვით გიჩვენებთ სათანადო ზომის ტექსტს. 3. შევცვალოთ ტექსტის ფერი თეთრზე და ტექსტი გავხადოთ ნაწილობრივ გამჭვირვალე. ამისთვის, თვისებების ფანჯარაში მოძებნეთ textColor, დააწკაპუნეთ მის გვერდით ცარიელ ადგილზე და დააჭირეთ 3 წერტილს. გამოვა ასეთი ფანჯარა: აქ ვხედავთ, რომ მონაცემები მოცემულია ჰექსებშიც და RGB-შიც. ჰექსებში პირველი ორი მიუთითებს გამჭვირვალობის დონეს, ხოლო დანარჩენი 6 ფერის შერჩევისთვის გამოიყენება. ანალოგიურად, A-ს გვერდით 255 ნიშნავს სრულიად გაუმჭვირვალეს. მოდით ჰექსებში შევცვალოთ პირველი ორი და მაგათ მაგივრად დავწეროთ 80, შემდეგ OK და ტექსტი გახდება თეთრი და ნახევრად გამჭვირვალე. ახლა მივხედოთ მეორე TextView-ს, რომელშიც თავად ფაქტი იქნება ჩაწერილი და კოდიდან შეიცვლება ხოლმე დინამიურად. მოკიდეთ ხელი TextView-ს, გადაიტანეთ ეკრანზე და ჯერ არ გაუშვათ. ეს კომპონენტი უნდა დავსვათ ცენტრში მარცხენა მხარეს, ამიტომ მიიტანეთ მარცხნივ და ჩამოიტანეთ შუამდე. მარცხენა მხარეს უნდა გაჩნდეს სქელი მწვანე ხაზი, ხოლო შუაში წყვეტილი ჰორიზონტალური ხაზი - ახლა შეგიძლიათ გაუშვათ ხელი. 1. პირველ რიგში შევცვალოთ id. მონახეთ ის თვისებების ფანჯარაში და ჩაუწერეთ: factTextView. 2. ახლა შევცვალოთ ტექსტი ისე როგორც წინა კომპონენტზე და ჩავწეროთ რაც გვინდა. მე ჩავწერ: „kaci izmoreba roca dilit igvidzebs, principshi qalic egrea...“. 3. ბოლოს, შევცვალოთ ფერი და ზომა როგორც წინა კომონენტში ვქენით. ოღონდ ამჯერად გამჭვირვალობა არ შევუცვალოთ. თუ გადავალთ text ტაბზე, ვნახავთ რომ ჩვენს activity_fun_app.xml ფაილს დაემატა ორი TextView მონაცემი, რომელთა შეცვლა და მოდიფიკაცია ჩვენ აქედანაც შეგვიძლია. ბოლოს მივხედოთ ღილაკსაც. ის უნდა იჯდეს სულ ქვემოთ, ვერტიკალურად ცენტრში, ამიტომ მოკიდეთ ხელით Button კომპონენტს და დააგდეთ შესაბამის პოზიციაზე. არ დაგავიწყდეთ, რომ ქვემოთ უნდა გაჩნდეს სქელი მწვანე ხაზი, ხოლო შუაში წყვეტილი ვერტიკალური. 1. სურათზე წითლად მონიშნულ ღილაკს თუ დააჭერთ, ნახავთ, რომ ზომა შეიცვლება სიგანეში და მისი ზედა კომპონენტის (parent) სიგანის ტოლი გახდება, ხოლო, თვისებების ფანჯარაში layout:width შეიცვლება და გახდება match_parent. თავიდან იყო wrap_content, რაც ნიშნავს რომ ღილაკის ზომა იქნება მასში არსებული ტექსტის სიგრძის შესაბამისი. ჩვენ გვჭირდება მშობელი კომპონენტის სიგრძის მქონე ღილაკი, ამიტომ დავტოვოთ შეცვლილი მნიშვნელობა - match_parent. 2. შევცვალოთ id, ოღონდ ამჯერად მოდი მისი შეცვლა ვისწავლოთ xml ფაილიდან. ამისთვის გადავიდეთ text ტაბზე, მოვძებნოთ ჩვენი ღილაკის კოდი და მისი აიდის მნიშვნელობა: @+id/button. აქ დახრილი ხაზის წინ რაც წერია, ეგ სჭირდება პროგრამას იმის გასარჩევად, რომ ეს კონკრეტული ჩანაწერი არის აიდი მნიშვნელობა. ჩვენ ტექსტი პირდაპირ არ უნდა შევცვალოთ და ამის მაგივრად უნდა გამოვიყენოთ რეფაქტორინგი. რეფაქტორინგის დროს იცვლება მნიშვნელობა არამხოლოდ ერთ ადგილზე, ანუ იქ სადაც ვცვლით, არამედ ყველგან სადაც კი არსებობს ეს მნიშვნელობა. ეს ძალიან მოსახერხებელი ფუნქციაა. ამისთვის დააწკაპუნეთ ტექსტზე “button” შემდეგ მაუსის მარჯვენა კლიკი და Refactor > Rename. და შეცვალეთ ისე როგორც სურათზეა: 3. ტექსტიც აქედანვე შევცვალოთ იგივე მეთოდით და New Button-ის მაგივრად ჩავწეროთ - „Shemdegi Chaxocva“. 4. გადავიდეთ Design ტაბზე და ღილაკის უკანა ფონი შევცვალოთ თეთრზე. ამისთვის დააწკაპუნეთ ღილაკზე, თვისებების ფანჯარაში მონახეთ background, მაგის გასწვრივ 3 წერტილს დააჭირეთ და გამოსულ ფანჯარაში გადადით System ტაბზე. მანდ ჩამოდით ცოტა ქვემოთ და აირჩიეთ White. 5. შევცვალოთ ღილაკის ტექსტის ფერი მწვანეზე რომ დაემთხვეს უკანა ფონს და ლამაზი იყოს. ამისთვის მის textColor თვისებაში ჩაწერეთ: #51b46d. სულ პირველ სურათს თუ გადახედავთ, ნახავთ, რომ კომპონენტების დაშორება გვერდებიდან, ზევიდან და ქვევიდან სხვა ზომისაა და უფრო მეტია ვიდრე ჩვენ ახლა გვაქვს. ეს არის პადინგის - Padding - დამსახურება. ამ წუთას ის დაყენებულია 16dp-ზე. dp არის density independent pixels და საჭიროა იმისთვის, რომ სხვადასხვა ზომის მოწყობილობებზე არ აირიოს ჩვენი კომპონენტები. გადავიდეთ text ტაბზე და სულ ზემოთ ნახეთ პადინგის მნიშვნელობები - 16dp აწერია ოთხივეს. მაუსს თუ მიიტანთ ამ მნიშვნელობებზე გამოჩნდება საიდან ხდება რეალურად ამ მნიშვნელობების აღება. ეს არის values ფოლდერში მოთავსებული dimens.xml ფაილი. გახსენით ეს ფაილი. ის მოთავსებულია app > res > values > dimens.xml-ში. როგორც ხედავთ აქ წერია რეალურად მნიშვნელობები. მოდით ორივე მნიშვნელობა შევცვალოთ 50dp-ზე. ახლა თუ გადახვალთ activity_fun_app.xml-ზე და შემდეგ Design ტაბს გახსნით, ნახავთ რომ აპლიკაციამ ისეთი ფორმა მიიღო, როგორც სულ პირველ სურათზეა. ამით ჩვენი ვიზუალური მხარე დასრულდა. მინდა შევაჯამო რა ვისწავლეთ აქამდე: გავეცანით კომპონენტებს, ვისწავლეთ მათი თვისებების შეცვლა, xml ფაილთან მუშაობა. ვისწავლეთ თემის შეცვლა, რეფაქტორინგი, სპ და დპ, ფერებისა და გამჭვირვალობის კონტროლი. ამასთან ზოგადად გავეცანით ანდროიდ სტუდიოს და შეგვექმნა წარმოდგენა პროექტში არსებული ფაილებიდან რა რას აკეთებს და სად რა არის: styles.xml, dimens.xml, activity_fun_app.xml. მესამე ნაწილი
  6. ავტორი: Jeremy Kerfs; გამოშვების თარიღი: 2011.11.29; გამომცემელი: Apress; ზომა: 3.1MB (RAR), 4.66MB; ფორმატი: PDF; გვერდების რაოდენობა: 196; ენა: ინგლისური; აღწერა: ანდროიდის თამაშების შემქნელებს ახლა შეუძლიათ შექმნანთ თამაშები ანდროიდის ტაბლეტებისთვის. ანდროიდის თამაშების პროგრამირება გაძლევთ საშუალებას გამოიყენოთ ტაბლეტის ბევრი ფუნქცია. თქვენ ისწავლით პროგრამირების წესებს იქ სადაც მოქმედების გადასაცემად უბრალოდ სენსორული ეკრანია საჭირო. თამაშის გრაფიკა და ხელოვნური ინტელექტი გაერთიანდა და შექმნა ახალი თაობის უახლესი დონის გრაფიკული აპლიკაციები. ანდროიდის თამაშების პროგრამირება გვაჩვენებს თუ რამდენად სწრაფად შეიქმნა და განვითარდა ანდროიდის სისტემა თუმცა ყველაფერი ერთდროულად არ მომხდარა და თქვენც ნელ ნელა თუმცა ხარისხიანად დააპროგრამებთ. თქვენ შექმნით უბრალო თამაშებს და გამოიყენებთ ქორეოგრაფიულ მოძრაობას. შემდეგ გაეცნობით სენსორული ეკრანით თამაშის მართვის პრინციპებს, გზადაგზა თქვენ აღმოაჩენთ და გაიგებთ თუ როგორ გამოიყენოთ ტაბლეტის ეკრანი სრულად. ისწავლით როგორ დაამატოთ თამაშს და მის მენიუს ხმოვანი ეფექტები. თითოული თავის დასაწყისში თქვენ შეგიძლიათ იხილოთ კოდი და შექმნათ თამაში საკუთარი კომპონენტებით აგრეთვე შეგიძლიათ იმუშავოთ უკვე გამზადებულ მარიოს ტიპის თამაშის მაგალითზე. ბოლოს როდესაც შექმნით საკუთარ თამაშს ისწავლით როგორ მოახდინოთ მისი რეალიზება. გაიგებთ თუ როგორ წარუდგინოთ სხვადასხვა აპლიკაციების მარკეტებს თქვენი თამაში და მოახდინოთ მონეტიზაცია(შემოსავლის მიღება) რას ისწავლით? ისწავლით ანდროიდის თამაშების შექმნას. როგორ ხდება დაპროგრამება სენსორული ტიპის ეკრანებზე და სხვა მოწყობილობებზე. ისწავლით ანდროიდის ტაბლეტის მთლიანი სივცის გამოყენებას, იმას თუ როგორ შექმნათ თამაში სადაც იქნება მრავალი მოთამაშე გაერთიანებული(ე.წ მულტიფლეერი) , ისწავლით როგორ დაურთოთ თამაშს ხელოვნური ინტელექტი. იმას თუ როგორ უნდა შეიქმნას თამაშის გრაფიკა დიზაინი.. ეს წიგნი არის ჯავას და ანდროიდის პროგრამირსტებისთვის. ბოლოს უნდა შეძლოს მოსწავლემ თამაშის შემქნა რომელსაც ექნება კარგი ეფექტები მაღალი ხარისხის გრაფიკა ექნება რამოდენიმე ნაწილი. და აგრეთვე ექნება მულტიფლეერის რეჟიმი. :download:
×