Главная страница
Навигация по странице:

  • Android жүйесіндегі сенсорлар

  • Лабка. № 4-5-6 Андроид Лабка Жарылкап Имангали ИС - 1907 Б. 4 5 6 Зертханалы жмыстар


    Скачать 6.75 Mb.
    Название4 5 6 Зертханалы жмыстар
    АнкорЛабка
    Дата27.10.2022
    Размер6.75 Mb.
    Формат файлаdocx
    Имя файла№ 4-5-6 Андроид Лабка Жарылкап Имангали ИС - 1907 Б.docx
    ТипДокументы
    #757519

    № 4 – 5 – 6 Зертханалық жұмыстар

    Орындаған: Жарылқап Иманғали ИС 1907 Б

    № 4 Зертханалық жұмыс

    8.2 Көп экранды тізім қолданбасын жасау

    1. MultiScreen жобасын жасадым. Java файлында әрекетті ListActivity параметрімен ауыстырдым. ListActivity класы экранда тек айналдырылатын тізім болатындай етіп жасалған және ешқандай қосымша белгілеуді қажет етпейді. Сондықтан, activity_main.xml файлын жоюға болады. Сондай-ақ MultiScreen сыныбынан келесі жолды алып тастау керек:



    2. Енді бізге тізімді және осы тізім элементтерінің атауларын байланыстыратын делдал керек. Ол үшін Android-де адаптер интерфейсі бар. Бізге осы ArrayAdapter сыныбының мұрагері қажет:

    Activity түріндегі Canari.java және canari.xml файлдарын жасадым. Біз басқа java файлын жасағаннан кейін оны манифест файлына жазуымыз керек екенін ескеріп, әйтпесе қолданба бұл жаңа классты көрмейді. AndtoidManifest.xml файлы res қалтасының дәл астында орналасқан. Негізгі



    әрекеттің дәл астында тегтерінде сынып атауы бар кодты қостым

    .









    Енді біз таңдаған элементті көрсететін Тост қалқымалы терезесін қосу ғана қалды. Бұл виджетті алдыңғылары сияқты импорттауға болады. Бізге үш параметрі бар makeText() әдісі қажет: қолданба мәтінмәні, мәтіндік хабарлама және хабарландыру ұзақтығы.







    8.3 Диалогтық терезе құру

    1. Жаңа Диалог жобасын жасау

    2. Әрекетіңізде түймені жасадым және оны «Фонды таңдау» деп атадык (ол үшін жолдар файлында сәйкес мазмұнның жолын жасау керек). Әрекет пен түймеге идентификатор бердім.



    Біздің қолданба фонды таңдалғанға өзгертеді. Сондықтан strings.xml файлында түстер мен олардың атауларын жасауымыз керек. Естеріңізде болса, бұл файл мәндер қалтасында орналасқан, ол өз кезегінде res қалтасында орналасқан. Біз сондай-ақ диалогтық терезе үшін қажет болатын хабарламалар жолын жасаймыз.



    Егер компилятор түрдің астын сызып, Мәтінмәннің астын сызу сияқты қате туралы хабарласа, меңзерді асты сызылған сөздің үстіне апарыңыз және қатені түзетуге болатын опцияларды ұсынатын мәтінмәндік мәзір пайда болуы керек. Кітапхананы импорттау үшін «Контекстті импорттау» опциясын таңдаңыз.







    Үлгіден сырғымалы қолданба жасау

    fragment_main_dummy.xml файлының үш көшірмесін жасаңыз. Оларды тиісінше бірінші_қойынды, екінші_қойынды және үшінші_қойынды атаңыз. TextView элементіне әрбір файлда бірегей идентификатор беріңіз. Экрандарға суреттер немесе жазулар сияқты кейбір элементтерді қоюға болады.







    Енді MainActivity.java файлына көшейік. Бізді сабақ қызықтырады

    жалпы статикалық класс DummySectionFragment фрагментті кеңейтед

    Біз осы сыныптың барлық мазмұнымен үш көшірмесін жасаймыз, оларды тиісінше FirstActivity, SecondActivity, ThirdActivity деп атаймыз.







    Енді SectionsPagerAdapter() класына көшейік. Бізді оның Fragment getItem () әдісі қызықтырады, біз оны өзгертеміз. Айналдыру кезінде тек TextView мазмұнын ғана емес, сонымен қатар бүкіл фрагментті өзгерту үшін осы әдіс кодын келесімен ауыстырыңыз:



    Құрылғыда жұмыс істейтін TabsAndSwipe қолданбасы



    №5 Зертханалық жұмыс

    Қимылдарды танудың стандартты көрсетілімдері

    Біз барлық қолдау көрсетілетін қимылдарды тануды көрсететін қосымшаны жасаймыз. Қосымшада бір әрекет, танылған қимыл туралы ақпаратты көрсететін бір ақпараттық өріс бар. Бағдарлама келесідей жұмыс істейді: пайдаланушы қолдау көрсетілетін сенсорлық қимылдардың бірін орындайды, ақпарат өрісі танылған қимыл туралы ақпаратты көрсетеді.

    package com.example.labka5;

    import androidx.appcompat.app.AppCompatActivity;

    import android.os.Bundle;
    import android.view.GestureDetector;
    import android.view.MotionEvent;
    import android.view.View;
    import android.widget.RelativeLayout;
    import android.widget.TextView;

    public class MainActivity extends AppCompatActivity {
    //initialize variable
    RelativeLayout relativeLayout;
    TextView textView;
    SwipeListener swipeListener;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //assign variable

    relativeLayout = findViewById(R.id.relative_layout);
    textView = findViewById(R.id.text_view);
    swipeListener = new SwipeListener(relativeLayout);
    }

    private class SwipeListener implements View.OnTouchListener {
    //initialize variable
    GestureDetector gestureDetector;

    //create constructor
    SwipeListener(View view){
    //initialize threshold value
    int threshold = 100;
    int velocity_threshold = 100;
    //initialize simple gesture listener

    GestureDetector.SimpleOnGestureListener listener =
    new GestureDetector.SimpleOnGestureListener(){
    @Override
    public boolean onDown(MotionEvent e) {
    //передатьистинноезначение

    return true;
    }

    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
    //получитьразницу x и y
    float xDiff = e2.getX() - e1.getX();

    float yDiff = e2.getY() - e1.getY();

    try {
    //проверитьусловие
    if (Math.abs(xDiff) > Math.abs(yDiff)){
    //когдахбольшеу
    //
    проверитьусловие
    if (Math.abs(xDiff) > threshold
    && Math.abs(velocityX) > velocity_threshold){
    //когдаразница x большепороговогозначения
    //When x (velocity) is greater than (velocity) threshold
    //
    проверитьусловие
    if (xDiff > 0){
    //присвайпевправо
    textView.setText("Swiped Right");
    }
    else {
    //присвайпевлево
    textView.setText("Swiped Left");
    }
    return true;
    }

    }else {
    //когда y больше x
    //
    проверитьусловие
    if (Math.abs(yDiff) > threshold
    && Math.abs(velocityY) > velocity_threshold){
    //когдаразница y большепороговогозначения
    //When y (velocity) is greater than (velocity) threshold
    if (yDiff > 0){
    //присвайпевниз
    textView.setText("Swipe Down");
    }else {
    //присвайпевверх
    textView.setText("Swipe Up");
    }
    return true;
    }
    }


    }catch (Exception e){
    e.printStackTrace();
    }
    return false;
    }
    };
    //инициализироватьдетекторжестов
    gestureDetector = new GestureDetector(listener);
    //set listener on view
    view.setOnTouchListener(this);

    }
    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
    //событиежеставозврата
    return gestureDetector.onTouchEvent(motionEvent);
    }
    }
    }

    GestureDetector.SimpleOnGestureListener сыныбы арқылы қимылды анықтау.





    № 6 Зертханалық жұмыс

    Android жүйесіндегі сенсорлар

    2) Қолданбаны іске қосу.

    «Іске қосу» түймесінің жанындағы көрсеткіні басыңыз, ашылмалы тізімнен таңдаңыз:

    Runas->Androidapplication

    Іс-әрекеттердің нәтижесінде жоба қайта құрылады және қолданба іске қосылады. Эмуляторды жүктегеннен кейін бағдарламаның жұмыс істейтініне көз жеткізуге болады.



    Акселерометр сенсоры. Android жүйесіндегі осындай класстарды қамтитын android.hardware бумасы Sensor, SensorManager және ensorEventListener жалпы сенсорлармен жұмыс істеу үшін API әзірленген. Sensor1 мысалындағы акселерометр. SensorManager класы барлығына қол жеткізу үшін пайдаланылады.Жүйе сенсорлары үшін әрекетті жасау кезінде осы сыныптың нысанын жасаңыз:

    sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

    Содан кейін қажетті түрдегі сенсорды алу үшін SensorManager пайдаланамыз:

    mSensor= sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);



    Басқа операциялық жүйелердегі сияқты сенсор объектісін жасау міндетті түрде өзгерісті білдірмейді.Аппараттық сенсордың күйі - сенсорды ұзақ уақыт бойы басқа қолданбалар үшін белсендіруге және пайдалануға болады. Біз жай ғана басқа деректер жинағышын жасаймыз.

    Біз onCreate () әдісінде жаңадан жасалған сенсордан ақпаратқа жазыла аламыз,біз оны жаңа ғана жасадық, бірақ оны onResume () әдісінде орындап, жазылымнан бас тартқан дұрысырақ.onPause () әдісіндегі сенсор. Бұл қандай да бір себептермен болған жағдайда жүйе ресурстарын үнемдейді және қолданбамызды өшіреді. Сенсор деректеріне жазылым келесідей көрінеді:





    написать администратору сайта