Heim Java javaLernprogramm 16 kleine Erfahrungszusammenfassungen zur Android-Entwicklung

16 kleine Erfahrungszusammenfassungen zur Android-Entwicklung

Nov 26, 2016 pm 01:42 PM
android android开发

16 kleine Erfahrungszusammenfassungen zur Android-Entwicklung. Ich hoffe, dass sie Freunden, die sich mit Android-Entwicklung beschäftigen, hilfreich sein werden.

16 kleine Erfahrungszusammenfassungen zur Android-Entwicklung

1. Der Rückgabewert von getTextSize in TextView ist in Pixel (px),

und setTextSize() ist in

Wenn Sie daher den zurückgegebenen Wert direkt zum Festlegen verwenden, tritt ein Fehler auf. Die Lösung besteht darin, eine andere Form von setTextSize() zu verwenden, die die Einheit angeben kann:

setTextSize(int unit, int size)   
TypedValue.COMPLEX_UNIT_PX : Pixels   
TypedValue.COMPLEX_UNIT_SP : Scaled Pixels   
TypedValue.COMPLEX_UNIT_DIP : Device Independent Pixels
Nach dem Login kopieren

2. Geerbt von Ansicht Beim Zeichnen einer Bitmap müssen Sie das Bild in die neu erstellte zeichnungsfähige xdpi-Datei einfügen, sonst ändert sich die Zeichnungsgröße leicht

3. Unterstreichen Sie den Text: textView.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG ) ;

4. scrollView erbt von FrameLayout, daher müssen Sie bei Verwendung von LayoutParams FrameLayouts verwenden

5. Mehrere Netzwerkprogrammierungsmethoden in Android:

1) Socket und ServerSocket für TCP/IP

  (2) DatagramSocket und DatagramPackage für UDP. Hierbei ist zu beachten, dass IPs zusammen mit dem Internetzugang zugewiesen werden, da es sich bei Android-Geräten in der Regel um Handheld-Terminals handelt. Nicht behoben. Daher unterscheidet sich die Entwicklung ein wenig von gewöhnlichen Internetanwendungen.

 (3) HttpURLConnection für direkte URL

 (4) Google hat den Apache HTTP-Client integriert und kann HTTP für die Netzwerkprogrammierung verwenden. Für HTTP hat Google die Versionen Appache Http Core und httpclient 4 integriert. Bitte beachten Sie daher, dass Android die httpclient 3.x-Serie nicht unterstützt und Multipart (MIME) derzeit nicht unterstützt. jar

by yourself (5 ) nutzt Webdienste. Android kann Xmlrpc und Jsonrpc über Open-Source-Pakete wie Jackson unterstützen. Darüber hinaus kann es auch Ksoap2 zum Implementieren von Webservice verwenden

 (6) Verwenden Sie die WebView-Ansichtskomponente direkt zum Anzeigen von Webseiten. Basierend auf WebView hat Google einen auf Chrome-Lite basierenden Webbrowser bereitgestellt, der direkt im Internet surfen kann.

6. TranslateAnimation (float from Der Unterschied zwischen dem Startpunkt der Animation und der aktuellen X-Koordinate der Ansicht;

float toXDelta, dieser Parameter stellt den Unterschied zwischen dem Endpunkt der Animation und der aktuellen X-Koordinate der Ansicht dar Koordinate;

float fromYDelta, dieser Parameter stellt die Differenz zwischen dem Animationsstartpunkt und der aktuellen Y-Koordinate der Ansicht dar;

float toYDelta) Dieser Parameter stellt die Differenz zwischen dem Animationsstartpunkt und dem dar aktuelle Y-Koordinate der Ansicht;

Wenn die Ansicht an Punkt A (x, y) liegt, soll sich die Animation von Punkt B (x+vonXDelta, y+vonYDelta) zu Punkt C (x+zuXDelta, y+zuYDelta) bewegen ).

7. Android bietet mehrere Möglichkeiten, auf den UI-Thread in anderen Threads zuzugreifen.

Besorgen Sie sich eine Webseite aus dem Internet und zeigen Sie deren Quellcode in einer Textansicht an

Activity.runOnUiThread( Runnable ) 
View.post( Runnable ) 
View.postDelayed( Runnable, long )
Nach dem Login kopieren
8. Lösung für das Problem, dass Spinner nicht im Dialog und Tabhost verwendet werden kann

 9. Eclipse-zugehöriger JDK-Quellcode
package org.unique.async;   
import java.io.ByteArrayOutputStream;   
import java.io.InputStream;   
import java.util.ArrayList;   
import org.apache.http.HttpEntity;   
import org.apache.http.HttpResponse;   
import org.apache.http.client.HttpClient;   
import org.apache.http.client.methods.HttpGet;   
import org.apache.http.impl.client.DefaultHttpClient;   
import android.app.Activity;   
import android.app.ProgressDialog;   
import android.content.Context;   
import android.content.DialogInterface;   
import android.os.AsyncTask;   
import android.os.Bundle;   
import android.os.Handler;   
import android.os.Message;   
import android.view.View;   
import android.widget.Button;   
import android.widget.EditText;   
import android.widget.TextView;   
public class NetworkActivity extends Activity{   
    private TextView message;   
    private Button open;   
    private EditText url;   
    @Override   
    public void onCreate(Bundle savedInstanceState) {   
       super.onCreate(savedInstanceState);   
       setContentView(R.layout.network);   
       message= (TextView) findViewById(R.id.message);   
       url= (EditText) findViewById(R.id.url);   
       open= (Button) findViewById(R.id.open);   
       open.setOnClickListener(new View.OnClickListener() {   
           public void onClick(View arg0) {   
              connect();   
           }   
       });   
    }   
    private void connect() {   
        PageTask task = new PageTask(this);   
        task.execute(url.getText().toString());   
    }   
    class PageTask extends AsyncTask<String, Integer, String> {   
        // 可变长的输入参数,与AsyncTask.exucute()对应   
        ProgressDialog pdialog;   
        public PageTask(Context context){   
            pdialog = new ProgressDialog(context, 0);      
            pdialog.setButton("cancel", new DialogInterface.OnClickListener() {   
             public void onClick(DialogInterface dialog, int i) {   
              dialog.cancel();   
             }   
            });   
            pdialog.setOnCancelListener(new DialogInterface.OnCancelListener() {   
             public void onCancel(DialogInterface dialog) {   
              finish();   
             }   
            });   
            pdialog.setCancelable(true);   
            pdialog.setMax(100);   
            pdialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);   
            pdialog.show();   
        }   
        @Override   
        protected String doInBackground(String... params) {   
            try{   
               HttpClient client = new DefaultHttpClient();   
               // params[0]代表连接的url   
               HttpGet get = new HttpGet(params[0]);   
               HttpResponse response = client.execute(get);   
               HttpEntity entity = response.getEntity();   
               long length = entity.getContentLength();   
               InputStream is = entity.getContent();   
               String s = null;   
               if(is != null) {   
                   ByteArrayOutputStream baos = new ByteArrayOutputStream();   
                   byte[] buf = new byte[128];   
                   int ch = -1;   
                   int count = 0;   
                   while((ch = is.read(buf)) != -1) {   
                      baos.write(buf, 0, ch);   
                      count += ch;   
                      if(length > 0) {   
                          // 如果知道响应的长度,调用publishProgress()更新进度   
                          publishProgress((int) ((count / (float) length) * 100));   
                      }   
                      // 让线程休眠100ms   
                      Thread.sleep(100);   
                   }   
                   s = new String(baos.toByteArray());              }   
               // 返回结果   
               return s;   
            } catch(Exception e) {   
               e.printStackTrace();   
            }   
            return null;   
        }   
        @Override   
        protected void onCancelled() {   
            super.onCancelled();   
        }   
        @Override   
        protected void onPostExecute(String result) {   
            // 返回HTML页面的内容   
            message.setText(result);   
            pdialog.dismiss();    
        }   
        @Override   
        protected void onPreExecute() {   
            // 任务启动,可以在这里显示一个对话框,这里简单处理   
            message.setText(R.string.task_started);   
        }   
        @Override   
        protected void onProgressUpdate(Integer... values) {   
            // 更新进度   
              System.out.println(""+values[0]);   
              message.setText(""+values[0]);   
              pdialog.setProgress(values[0]);   
        }   
     }   
}
Nach dem Login kopieren

 (1) Klicken Sie auf „Fenster“-> „Java“-> (2) Zu diesem Zeitpunkt befindet sich rechts neben „Installierte JRES“ ein Listenbereich, der die JRE-Umgebungen im System auflistet. Klicken Sie dann auf „Bearbeiten…“ daneben Es erscheint das Fenster (JRE bearbeiten)

(3). Wählen Sie dieses Element der rt.jar-Datei aus: „c:program filesjavajre_1.5.0_06librt.jar“ und klicken Sie zum Erweitern auf das „+“-Zeichen auf der linken Seite it,

(4). Nach der Erweiterung sehen Sie „Quellanhang:(keine)“, klicken Sie auf dieses Element, klicken Sie rechts auf die Schaltfläche „Quellanhang…“ und wählen Sie „src. zip“-Datei in Ihrem JDK-Verzeichnis

 10. Synchronisierungsverbindung kann nicht geöffnet werden!

USB-Debugging in den Einstellungen neu starten

11. Problem beim Festlegen der Cursorposition in EditText

Wenn es in EditText einige voreingestellte Texte gibt, möchte ich den Cursor dorthin bewegen Zuerst habe ich setSelection(0) verwendet, aber festgestellt, dass es beim Samsung P1000 ein Problem gab. Nach Recherchen wurde festgestellt, dass zuerst EditText.requestFocus() und dann setSelection(0) aufgerufen werden muss. Andernfalls wird es auf 2.x-Maschinen Probleme geben, auf 3.x-Maschinen ist es jedoch in Ordnung.

12. Die Home-Schaltfläche in Android ist vom System reserviert. Sie können onKeyDown nicht so verwenden, wie Sie die Zurück-Schaltfläche überwachen können. Sie können jedoch Ihren eigenen Verarbeitungscode basierend auf einigen Aktivitätsereignissen hinzufügen und anzeigen ausgelöst werden, wenn die Home-Taste gedrückt wird. Jemand im Internet hat gesagt, dass man onAttachWindow verwenden kann, um die Home-Taste abzufangen, aber ich habe es noch nie versucht

13. Beim Rendern mit surfaceView, wenn Sie möchten, dass andere Ansichten angezeigt werden Wenn bei Bedarf angezeigt wird, können Sie die Oberflächenansicht und andere Ansichten in das Layout einfügen. Sie können andere Ansichten normalerweise ausblenden

14. Verwenden Sie android:imeOptinos, um einige Schnittstelleneinstellungen für die mit Android gelieferte Softtastatur vorzunehmen:

android:imeOptions="flagNoExtractUi" //Verwendung Die Softtastatur wird nicht im Vollbildmodus angezeigt, sondern nimmt nur einen Teil des Bildschirms ein.

Gleichzeitig kann diese Eigenschaft auch die Anzeige steuern Inhalt der Tasten in der unteren rechten Ecke der Softtastatur. Standardmäßig ist es die Eingabetaste

15. Schatten zur Textansicht hinzufügen



16. Wie stelle ich das Chinesisch in TextView so ein, dass es fett dargestellt wird?

  在xml文件中使用android:textStyle=”bold” 可以将英文设置成粗体,但是不能将中文设置成粗体,将中文设置成粗体的方法是:

TextView tv = (TextView)findViewById(R.id.TextView01); 
TextPaint tp = tv.getPaint(); 
tp.setFakeBoldText(true);
Nach dem Login kopieren


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Neuer Bericht liefert eine vernichtende Einschätzung der angeblichen Kamera-Upgrades für das Samsung Galaxy S25, Galaxy S25 Plus und Galaxy S25 Ultra Neuer Bericht liefert eine vernichtende Einschätzung der angeblichen Kamera-Upgrades für das Samsung Galaxy S25, Galaxy S25 Plus und Galaxy S25 Ultra Sep 12, 2024 pm 12:23 PM

In den letzten Tagen hat Ice Universe immer wieder Details zum Galaxy S25 Ultra enthüllt, von dem allgemein angenommen wird, dass es das nächste Flaggschiff-Smartphone von Samsung ist. Der Leaker behauptete unter anderem, Samsung plane nur ein Kamera-Upgrade

Beim Samsung Galaxy S25 Ultra sind erste Renderbilder durchgesickert und Gerüchte über Designänderungen wurden enthüllt Beim Samsung Galaxy S25 Ultra sind erste Renderbilder durchgesickert und Gerüchte über Designänderungen wurden enthüllt Sep 11, 2024 am 06:37 AM

OnLeaks hat sich nun mit Android Headlines zusammengetan, um einen ersten Blick auf das Galaxy S25 Ultra zu werfen, nur wenige Tage nach dem gescheiterten Versuch, mehr als 4.000 US-Dollar von seinen X-Followern (ehemals Twitter) zu generieren. Für den Kontext sind die unten eingebetteten Renderbilder h

IFA 2024 | Das NXTPAPER 14 von TCL wird in der Leistung nicht mit dem Galaxy Tab S10 Ultra mithalten können, in der Größe aber fast IFA 2024 | Das NXTPAPER 14 von TCL wird in der Leistung nicht mit dem Galaxy Tab S10 Ultra mithalten können, in der Größe aber fast Sep 07, 2024 am 06:35 AM

Neben der Ankündigung zweier neuer Smartphones hat TCL auch ein neues Android-Tablet namens NXTPAPER 14 angekündigt, dessen riesige Bildschirmgröße eines seiner Verkaufsargumente ist. Das NXTPAPER 14 verfügt über Version 3.0 der matten LCD-Panels der Signaturmarke von TCL

Neuer Bericht liefert eine vernichtende Einschätzung der angeblichen Kamera-Upgrades für das Samsung Galaxy S25, Galaxy S25 Plus und Galaxy S25 Ultra Neuer Bericht liefert eine vernichtende Einschätzung der angeblichen Kamera-Upgrades für das Samsung Galaxy S25, Galaxy S25 Plus und Galaxy S25 Ultra Sep 12, 2024 pm 12:22 PM

In den letzten Tagen hat Ice Universe immer wieder Details zum Galaxy S25 Ultra enthüllt, von dem allgemein angenommen wird, dass es das nächste Flaggschiff-Smartphone von Samsung ist. Der Leaker behauptete unter anderem, Samsung plane nur ein Kamera-Upgrade

Das Vivo Y300 Pro bietet einen 6.500-mAh-Akku in einem schlanken 7,69-mm-Gehäuse Das Vivo Y300 Pro bietet einen 6.500-mAh-Akku in einem schlanken 7,69-mm-Gehäuse Sep 07, 2024 am 06:39 AM

Das Vivo Y300 Pro wurde gerade vollständig vorgestellt und ist eines der schlanksten Mittelklasse-Android-Telefone mit einem großen Akku. Genauer gesagt ist das Smartphone nur 7,69 mm dick, verfügt aber über einen 6.500 mAh starken Akku. Dies ist die gleiche Kapazität wie bei der kürzlich eingeführten Version

Das Samsung Galaxy S24 FE soll in vier Farben und zwei Speicheroptionen für weniger als erwartet auf den Markt kommen Das Samsung Galaxy S24 FE soll in vier Farben und zwei Speicheroptionen für weniger als erwartet auf den Markt kommen Sep 12, 2024 pm 09:21 PM

Samsung hat noch keine Hinweise darauf gegeben, wann es seine Smartphone-Serie Fan Edition (FE) aktualisieren wird. Derzeit ist das Galaxy S23 FE nach wie vor die jüngste Ausgabe des Unternehmens und wurde Anfang Oktober 2023 vorgestellt

Xiaomi Redmi Note 14 Pro Plus erscheint als erstes Qualcomm Snapdragon 7s Gen 3 Smartphone mit Light Hunter 800 Kamera Xiaomi Redmi Note 14 Pro Plus erscheint als erstes Qualcomm Snapdragon 7s Gen 3 Smartphone mit Light Hunter 800 Kamera Sep 27, 2024 am 06:23 AM

Das Redmi Note 14 Pro Plus ist nun offiziell als direkter Nachfolger des letztjährigen Redmi Note 13 Pro Plus (aktuell 375 $ bei Amazon) erhältlich. Wie erwartet steht das Redmi Note 14 Pro Plus neben dem Redmi Note 14 und dem Redmi Note 14 Pro an der Spitze der Redmi Note 14-Serie. Li

iQOO Z9 Turbo Plus: Die Reservierungen für das möglicherweise aufgepeppte Serien-Flaggschiff beginnen iQOO Z9 Turbo Plus: Die Reservierungen für das möglicherweise aufgepeppte Serien-Flaggschiff beginnen Sep 10, 2024 am 06:45 AM

Die Schwestermarke von OnePlus, iQOO, hat einen Produktzyklus von 2023 bis 2024, der möglicherweise fast abgeschlossen ist. Dennoch hat die Marke erklärt, dass sie mit ihrer Z9-Serie noch nicht fertig sei. Seine letzte und möglicherweise hochwertigste Turbo+-Variante wurde gerade wie vorhergesagt angekündigt. T

See all articles