Android APP の注意事項 (1) ヒント

1. 上部のタイトルバーを削除します。

  1. 解像度 -> 値 -> スタイルを開きます

  2. DarkActionBar を NoActionBar に変更します

または: アクティビティの super.oncreat の下にコード行を追加します。

 requestWindowFeature(Window.FEATURE_NO_TITLE);

このメソッドでは、アクティビティが AppCompatActivity ではなくアクティビティを継承する必要があることに注意してください。そうでない場合、メソッドは無効になります。

2.背景の透明度を設定する

 android:background="#55ffffff"

# の後に数字を追加するだけです。00 は完全に透明、ff は不透明です

3. APPアイコンを変更する

最初の方法: (最も簡単な方法) 準備したアイコンを res ディレクトリのドローアブルに配置し、AndroidManifest.xml ファイルで android:icon と android:roundIcon の 2 つの属性を見つけて、icon に配置したものに設定します。ファイル。

画像テキスト

図に示すように、appicon が置き換えるファイルです。保存する際は、大文字やスペースを含まない名前で保存すると、コンパイル時にエラーが報告されます。また、見つかったデータの画像形式は .png で保存することをお勧めします。ただし、.jpg と .png がアイコンを正しく置き換えられることをテストしました。

画像テキスト

ここでは、アイコンを設定できる属性は 2 つあり、設定時の効果を実現できるのは 1 つだけですが、両方を同時に使用する場合は、属性で指定するオブジェクトを一貫して設定する必要があります。そうでない場合、テストの結果は、表示されたroundIconで指定されたオブジェクトであり、android:roundIcon属性の説明を見つけました。 android:roundIcon属性はアイコンを指定しますが、この属性を使用する必要があるのは、必要な場合のみです。アプリケーションに特別な丸いアイコンを設定します。

2 番目のタイプ: (少し複雑) より詳細な説明については、次の 2 つの記事を参照してください: Image Asset Studio、Android の魔法の武器の武器 - 短い本

【Android魔法武器の画像アセットスタジオ】

アプリケーションの android:icon と android:roundIcon の違い

具体的な変更方法は次のとおりです。

画像テキスト

図に示すように、Image Asset を見つけてクリックします。以下のように表示します

画像テキスト

ステップ 3 では、図に示すように、前景として準備したアイコンを選択します。

画像テキスト

ステップ2の背景の選択に関しては、個人的にはデフォルトで良いと思います。前景と背景の内容については、前のリンクに対応する説明があるので、わからない場合は調べてください。次に、終了できます。

画像テキスト

画像テキスト

画像テキスト

新しく作成したファイルを取得します。ここで、ic_launcher_round.png は Image Asset によって生成された丸いアイコンであり、1 と同様に AndroidManifest ファイルに設定できることを説明します。ic_launcher-web.pngは、Google Playでアプリ紹介を表示する際に使用します。

要約すると、方法 2 で生成されたアイコンの適応効​​果はより優れており、方法 1 の効果は事前に考えられた効果とは異なる可能性があります。

4. Android WebView のロードに失敗しました

net::ERR_CLEARTEXT_NOT_PERMITTED

まず、アプリがネットワーク権限を宣言していることを確認してください。

 <uses-permission android:name="android.permission.INTERNET" />

  1. 解決策 (1):

アプリケーションのスイッチをオンにする

 <マニフェスト ...> 
 <
   アプリケーション
 • android:usesCleartextTraffic="true" </
   アプリケーション>
  < 
 /マニフェスト>
  1. 解決策 (2):

res の下に新しい xml ディレクトリを作成し、ファイル network_security_config.xml を作成します。内容は次のとおりです。

 <?xml version="1.0" encoding="utf-8"?> 
 <network-security-config> 
   <base-config cleartextTrafficPermitted="true" /> 
 </network-security-config>

AndroidManifest.xml の application タグに設定を追加します。

 <マニフェスト ...> 
   <アプリケーション
 • android:networkSecurityConfig="@xml/network_security_config" 
   </application>
  
 </manifest>

解決策(3): 【推奨】

サーバーとローカル アプリケーションの両方が https に切り替わります

解決策 (4):

targetSdkVersion を 27 にダウングレードします

5. 子スレッドで UI を変更する

通常の状況では、子スレッドで UI を更新すると、ViewRootImpl の checkThread によってチェックされるため、エラーが報告されます。

エラーによって checkThread がトリガーされたはずですが、エラーがトリガーされない限り、UI はスムーズに更新され、setText はいかなる状況でも checkThread をトリガーしません。

checkForRelayout は setText メソッドで呼び出されます。このメソッドは、checkThread がトリガーされない理由を示しています。checkThread は requestLayout 内でのみ実行されるため、ここで requestLayout が呼び出されない限り checkThread は実行されません。

Viewのサイズがwrap_contentではなく、match_parentまたはfixed dpである限り、requestLayoutはトリガーされず、当然サブスレッドで更新できます。

6. Android開発における横画面・縦画面切り替え時のリロード問題の解決方法

解決策: マニフェストで、アクティビティの configChanges を次のように設定します。

 android:configChanges="画面サイズ|キーボード非表示|方向"

このように、横画面と縦画面を切り替えても、アクティビティの状態は変わりません。

おすすめ

転載: blog.csdn.net/aniclever/article/details/120262136