16 kleine Erfahrungszusammenfassungen zur Android-Entwicklung
16 kleine Erfahrungszusammenfassungen zur Android-Entwicklung. Ich hoffe, dass sie Freunden, die sich mit Android-Entwicklung beschäftigen, hilfreich sein werden.
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
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 anActivity.runOnUiThread( Runnable ) View.post( Runnable ) View.postDelayed( Runnable, long )
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]); } } }
(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);

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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

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

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

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 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

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

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

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
