国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android移動(dòng)應(yīng)用開發(fā)——實(shí)驗(yàn)七——小鴨子報(bào)數(shù)(廣播)

這篇具有很好參考價(jià)值的文章主要介紹了Android移動(dòng)應(yīng)用開發(fā)——實(shí)驗(yàn)七——小鴨子報(bào)數(shù)(廣播)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

??? ?掌握布局與控件的使用方法
??? ?掌握有序廣播機(jī)制,根據(jù)廣播接收者的優(yōu)先級(jí)順序接收廣播
??? ?掌握廣播攔截機(jī)制

通過合理布局來搭建界面,界面效果如下圖所示。采用有序廣播方式,將下方小鴨子優(yōu)先級(jí)分別設(shè)置1000、800、600。
1、當(dāng)點(diǎn)擊大喇叭后彈出“有序報(bào)數(shù)”,下方小鴨子從左到右依次報(bào)數(shù)“1”、“2”、“3”;
2、將第二個(gè)小鴨子優(yōu)先級(jí)設(shè)置為1000,注冊(cè)位置調(diào)整到左邊第一個(gè)小鴨子前邊,當(dāng)點(diǎn)擊大喇叭后彈出“有序報(bào)數(shù)”,下方中間小鴨子首先報(bào)數(shù)“1”,之后左邊小鴨子報(bào)數(shù)“2”,最后右邊小鴨子報(bào)數(shù)“3”;
3、設(shè)計(jì)攔截機(jī)制,當(dāng)點(diǎn)擊大喇叭后彈出“有序報(bào)數(shù)”,下方中間小鴨子首先報(bào)數(shù)“1”,之后其余小鴨子不再報(bào)數(shù)。
鼓勵(lì)使用有序廣播機(jī)制和廣播攔截機(jī)制,自主設(shè)計(jì)類似功能的實(shí)驗(yàn)案例。

Android移動(dòng)應(yīng)用開發(fā)——實(shí)驗(yàn)七——小鴨子報(bào)數(shù)(廣播)

Android移動(dòng)應(yīng)用開發(fā)——實(shí)驗(yàn)七——小鴨子報(bào)數(shù)(廣播)

Android移動(dòng)應(yīng)用開發(fā)——實(shí)驗(yàn)七——小鴨子報(bào)數(shù)(廣播)

Android移動(dòng)應(yīng)用開發(fā)——實(shí)驗(yàn)七——小鴨子報(bào)數(shù)(廣播)

activity_main.xml?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:background="@drawable/count_ducks_bg"
    android:orientation="vertical">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginTop="60dp">

        <ImageButton
            android:id="@+id/horn"
            android:layout_width="180dp"
            android:layout_height="150dp"
            android:layout_centerHorizontal="true"
            android:background="@drawable/horn" />

        <TextView
            android:id="@+id/content_left"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toLeftOf="@+id/horn"
            android:background="@drawable/content_left_bg"
            android:gravity="center"
            android:text="有序報(bào)數(shù)"
            android:textColor="@color/white"
            android:visibility="gone" />
    </RelativeLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="150dp"
        android:orientation="horizontal">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="40dp"
            android:layout_marginRight="20dp"
            android:orientation="vertical">
            <TextView
                style="@style/tittle_style"
                android:id="@+id/duck_1"
                />

            <ImageView
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:background="@drawable/duck" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="20dp"
            android:orientation="vertical">

            <TextView
                style="@style/tittle_style"
                android:id="@+id/duck_2"
                />
            <ImageView
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:background="@drawable/duck" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="20dp"
            android:orientation="vertical">

            <TextView
                style="@style/tittle_style"
                android:id="@+id/duck_3"
                />
            <ImageView
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:background="@drawable/duck" />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>

Android移動(dòng)應(yīng)用開發(fā)——實(shí)驗(yàn)七——小鴨子報(bào)數(shù)(廣播)

style.xml?

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="tittle_style">
        <item name="android:background">@drawable/tittle</item>
        <item name="android:layout_width">20dp</item>
        <item name="android:layout_height">20dp</item>
        <item name="android:visibility">gone</item>
        <item name="android:gravity">center</item>
        <item name="android:layout_marginLeft">15dp</item>
        <item name="android:textColor">@color/white</item>
    </style>
</resources>

這是設(shè)置鴨子報(bào)數(shù)的TextView的格式。

tittle.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!--    設(shè)置漸變顏色-->
    <gradient
        android:endColor="#fe451d"
        android:startColor="#fe957f"
        android:type="linear"/>
<!--    設(shè)置圓角-->
    <corners android:radius="180dp"/>
</shape>

這是style調(diào)用的背景格式。文章來源地址http://www.zghlxwxcb.cn/news/detail-485915.html

MainActivity.java

package com.example.shiyan7;

import androidx.appcompat.app.AppCompatActivity;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    TextView duck1, duck2, duck3;
    ImageButton horn;
    TextView content_left;
    MyBroadCastReceiver1 myBroadCastReceiver1;
    MyBroadCastReceiver2 myBroadCastReceiver2;
    MyBroadCastReceiver3 myBroadCastReceiver3;
    private int num = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();
        register_Receiver();
    }

    private void init() {
        duck1 = findViewById(R.id.duck_1);
        duck2 = findViewById(R.id.duck_2);
        duck3 = findViewById(R.id.duck_3);
        horn = findViewById(R.id.horn);
        content_left = findViewById(R.id.content_left);
        horn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                content_left.setVisibility(View.VISIBLE);
                horn.setClickable(false);
                Intent intent = new Intent();
                intent.setAction("Count_Duck");
                sendOrderedBroadcast(intent,null);
            }
        });
    }

    private void register_Receiver() {
        IntentFilter intentFilter1=new IntentFilter();
        intentFilter1.addAction("Count_Duck");
        intentFilter1.setPriority(1000);
//        intentFilter1.setPriority(800);
        myBroadCastReceiver1=new MyBroadCastReceiver1();
        registerReceiver(myBroadCastReceiver1,intentFilter1);
        IntentFilter intentFilter2=new IntentFilter();
        intentFilter2.addAction("Count_Duck");
        intentFilter2.setPriority(800);
//        intentFilter2.setPriority(1000);
        myBroadCastReceiver2=new MyBroadCastReceiver2();
        registerReceiver(myBroadCastReceiver2,intentFilter2);
        IntentFilter intentFilter3=new IntentFilter();
        intentFilter3.addAction("Count_Duck");
        intentFilter3.setPriority(600);
        myBroadCastReceiver3=new MyBroadCastReceiver3();
        registerReceiver(myBroadCastReceiver3,intentFilter3);


    }

    class MyBroadCastReceiver1 extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            num=num+1;
            duck1.setVisibility(View.VISIBLE);
            duck1.setText(num+"");
            Log.i("duck1","我收到了廣播。");
            stop();
        }
    }

    class MyBroadCastReceiver2 extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            num=num+1;
            duck2.setVisibility(View.VISIBLE);
            duck2.setText(num+"");
            Log.i("duck2","我收到了廣播。");
//            abortBroadcast();
//            Log.i("duck2","我攔截了廣播。");
            stop();
        }
    }

    class MyBroadCastReceiver3 extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            num=num+1;
            duck3.setVisibility(View.VISIBLE);
            duck3.setText(String.valueOf(num));
            Log.i("duck3","我收到了廣播。");
            stop();
        }
    }

    private void stop() {
        try {
            Thread.sleep(500);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(myBroadCastReceiver1);
        unregisterReceiver(myBroadCastReceiver2);
        unregisterReceiver(myBroadCastReceiver3);
    }
}

到了這里,關(guān)于Android移動(dòng)應(yīng)用開發(fā)——實(shí)驗(yàn)七——小鴨子報(bào)數(shù)(廣播)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 移動(dòng)應(yīng)用開發(fā)環(huán)境搭建Android Studio

    移動(dòng)應(yīng)用開發(fā)環(huán)境搭建Android Studio

    記得提前開啟電腦虛擬化支持,具體方法可自行百度 查看是否啟用虛擬化 JDK安裝與卸載 由于Andriod開發(fā)使用的語言是javaKotlin,這里使用的是java語言所以需要先安裝java的開發(fā)環(huán)境 所有開發(fā) Android 應(yīng)用程序需要的工具都是開源的,并且可以從互聯(lián)網(wǎng)上下載 Android Studio 是谷歌推

    2023年04月08日
    瀏覽(33)
  • 如何開發(fā)移動(dòng)應(yīng)用:iOS和Android的比較

    移動(dòng)應(yīng)用開發(fā)領(lǐng)域一直以來都備受關(guān)注,而iOS和Android作為兩大主要的移動(dòng)操作系統(tǒng),各自擁有強(qiáng)大的生態(tài)系統(tǒng)和開發(fā)工具。在本文中,我們將比較iOS和Android移動(dòng)應(yīng)用開發(fā)的關(guān)鍵方面,以幫助開發(fā)者選擇合適的平臺(tái),或者了解在不同平臺(tái)上開發(fā)應(yīng)用時(shí)需要考慮的因素。 iOS iO

    2024年02月07日
    瀏覽(23)
  • 移動(dòng)應(yīng)用開發(fā)之路 05 Android Studio 簡(jiǎn)單登錄界面制作

    移動(dòng)應(yīng)用開發(fā)之路 05 Android Studio 簡(jiǎn)單登錄界面制作

    學(xué)校開了一門移動(dòng)應(yīng)用開發(fā)課程,我一開始興趣盎然,但是看到使用的環(huán)境是 Java 8 的時(shí)候心就涼了一半,在詢問老師的意見之后決定使用現(xiàn)在比較常用的Android Studio完成學(xué)習(xí),特此記錄自學(xué)之路。 這篇是一個(gè)總結(jié)性質(zhì)的文章,主要為了熟練運(yùn)用之前講過的幾個(gè)UI控件。小項(xiàng)目

    2024年02月08日
    瀏覽(25)
  • 移動(dòng)開發(fā)最佳實(shí)踐:為 Android 和 iOS 構(gòu)建成功應(yīng)用的策略

    移動(dòng)開發(fā)最佳實(shí)踐:為 Android 和 iOS 構(gòu)建成功應(yīng)用的策略

    您可以將本文作為指南,確保您的應(yīng)用程序符合可行的最重要標(biāo)準(zhǔn)。請(qǐng)注意,這份清單遠(yuǎn)非詳盡無遺;您可以加以利用,并添加一些自己的見解。 要制作一個(gè)成功的應(yīng)用程序,你需要了解你是為誰制作的。從創(chuàng)建用戶角色開始–基于人口統(tǒng)計(jì)、行為模式、動(dòng)機(jī)和目標(biāo),對(duì)理想

    2024年02月13日
    瀏覽(25)
  • Flutter與Android開發(fā):構(gòu)建跨平臺(tái)移動(dòng)應(yīng)用的新選擇

    Flutter與Android開發(fā):構(gòu)建跨平臺(tái)移動(dòng)應(yīng)用的新選擇

    本文內(nèi)容提綱如下: 介紹Flutter技術(shù):Flutter是一種由Google推出的開源UI工具包,用于構(gòu)建高性能、跨平臺(tái)的移動(dòng)應(yīng)用。文章將介紹Flutter的基本概念、特點(diǎn)和優(yōu)勢(shì),包括其快速的開發(fā)速度、一致的用戶界面和豐富的UI組件庫等。 Flutter與Android開發(fā)的對(duì)比:文章將對(duì)比Flutter與傳統(tǒng)

    2023年04月21日
    瀏覽(1004)
  • 移動(dòng)應(yīng)用開發(fā) 試題 復(fù)習(xí)

    1、Android 開發(fā)中常用的數(shù)據(jù)庫是( ) A、 SQLite B、 Oracle C、 MySql D、 SQL Server A.SQLite 2、從其他應(yīng)用中讀取共享的數(shù)據(jù)庫數(shù)據(jù)時(shí),需要用到的是 query 方法,返回的是 Curser 數(shù) 據(jù),那么這個(gè)方法是哪個(gè)對(duì)象的方法。( ) A、 SQLiteDatabase B、 SQLiteOpenHelper C、 ContentProvider D、 Content

    2024年02月13日
    瀏覽(26)
  • 第一篇【傳奇開心果系列】beeware開發(fā)移動(dòng)應(yīng)用:輪盤抽獎(jiǎng)移動(dòng)應(yīng)用

    第一篇【傳奇開心果系列】beeware開發(fā)移動(dòng)應(yīng)用:輪盤抽獎(jiǎng)移動(dòng)應(yīng)用

    一、項(xiàng)目目標(biāo) 使用beeware的toga寫傳奇開心果輪盤抽獎(jiǎng)安卓手機(jī)應(yīng)用和蘋果手機(jī)應(yīng)用 二、開發(fā)傳奇開心果輪盤抽獎(jiǎng)安卓應(yīng)用編程思路 要使用Beeware的Toga庫來編寫一個(gè)傳奇開心果輪盤抽獎(jiǎng)安卓應(yīng)用,你需要按照以下步驟進(jìn)行操作: 安裝Beeware:首先,你需要安裝Beeware的開發(fā)工具包

    2024年01月20日
    瀏覽(99)
  • 移動(dòng)應(yīng)用開發(fā)期末復(fù)習(xí)(自用復(fù)習(xí)勿轉(zhuǎn))

    移動(dòng)應(yīng)用開發(fā)期末復(fù)習(xí)(自用復(fù)習(xí)勿轉(zhuǎn))

    主要考察實(shí)驗(yàn)中的通知:notification,service。數(shù)據(jù)庫的增刪改查操作結(jié)合界面的一些操作。 Android是一種基于Linux的軟件平臺(tái)和操作系統(tǒng),采用了軟件堆層(Software Stack)的架構(gòu),由下往上分別是Linux內(nèi)核層、硬件抽象層、系統(tǒng)運(yùn)行時(shí)庫層(又稱為中間件層)、應(yīng)用程序框架層和系

    2024年02月05日
    瀏覽(31)
  • 移動(dòng)應(yīng)用開發(fā)介紹及iOS方向?qū)W習(xí)路線(HUT移動(dòng)組版)

    移動(dòng)應(yīng)用開發(fā)介紹及iOS方向?qū)W習(xí)路線(HUT移動(dòng)組版)

    ? 作為一個(gè)HUT移動(dòng)組待了一坤年(兩年半)多的老人,在這里為還在考慮進(jìn)哪個(gè)組的萌新們以及將來進(jìn)組的新朋友提供一份關(guān)于移動(dòng)應(yīng)用開發(fā)介紹以及學(xué)習(xí)路線的白話文,因?yàn)槲沂莍OS方向的,所以學(xué)習(xí)路線就只介紹iOS了,希望這篇文章對(duì)你了解移動(dòng)應(yīng)用開發(fā)有幫助。 ? 從字

    2024年02月04日
    瀏覽(29)
  • Flutter:跨平臺(tái)移動(dòng)應(yīng)用開發(fā)的未來

    Flutter:跨平臺(tái)移動(dòng)應(yīng)用開發(fā)的未來

    Flutter的背景和概述 Flutter是由Google開發(fā)的一個(gè)開源UI工具包,用于構(gòu)建漂亮、快速且高度可定制的移動(dòng)應(yīng)用程序。它于2017年首次發(fā)布,并迅速引起了開發(fā)者們的關(guān)注。Flutter采用了一種全新的方法來構(gòu)建用戶界面,通過使用自繪UI技術(shù),可以實(shí)現(xiàn)高性能的跨平臺(tái)應(yīng)用開發(fā)。 Fl

    2024年01月22日
    瀏覽(91)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包