ホームページ WeChat アプレット WeChatの開発 C# と Java をそれぞれ使用して実装された Android 模倣 WeChat メニューの例を共有します

C# と Java をそれぞれ使用して実装された Android 模倣 WeChat メニューの例を共有します

Apr 24, 2017 pm 03:15 PM
android c# java

この記事では、主に Android 模倣 WeChat メニュー (メニュー) (それぞれ C# と Java を使用して実装) を紹介します。この記事では、C# バージョンと Java バージョンのそれぞれの動作効果と実装コードを示します。必要な友人はそれを参照してください。もちろん、Android メニューは XML を使用して同じ機能を実現できます。そのため、この記事では XML メソッドを使用してデモを行います。 VS For Development ではない場合、リソース ファイル名は小文字で始まる必要があります。そうしないと、エラーが報告されます。

ランニングエフェクト


C#実装

using Android.App;
using Android.OS;
using Android.Views;
using Android.Widget;
namespace MenuDemo
{
  [Activity(Label = "@string/ApplicationName", MainLauncher = true, Icon = "@drawable/Icon")]
  public class MainActivity : Activity
  {
    protected override void OnCreate(Bundle bundle)
    {
      base.OnCreate(bundle);

      SetContentView(Resource.Layout.Main);
      var iv = FindViewById<ImageView>(Resource.Id.iv);
      iv.SetImageResource(Resource.Drawable.test);
      RegisterForContextMenu(iv);
    }
    //与一个活动关联
    public override bool OnCreateOptionsMenu(IMenu menu)
    {
      base.OnCreateOptionsMenu(menu);
      const int menuItemId = Menu.First;
      const int menuItemOrder = Menu.None;
      const int munuItemText = Resource.String.menuItem1;
      /*
       * 第一个参数:组值
       * 第二个参数:菜单唯一标示
       * 第三个参数:顺序参数
       * 第四个参数:文本
       */
      menu.Add(1, menuItemId, menuItemOrder, munuItemText);
      menu.Add(2, menuItemId + 10, menuItemOrder + 1, "菜单2");
      menu.Add(2, menuItemId + 20, menuItemOrder + 2, "菜单3" );
      var subMenu = menu.AddSubMenu(0, menuItemId + 30, menuItemOrder + 3, "子菜单" );
      subMenu.SetHeaderIcon(Resource.Drawable.more);
      var subMenuItem1 = subMenu.Add(0, menuItemId + 40, menuItemOrder + 4,"子菜单-1" );
      subMenuItem1.SetIcon(Resource.Drawable.more);
      var subMenuItem2 = subMenu.Add(0, menuItemId + 50, menuItemOrder + 5,"子菜单-2" ).SetCheckable(true);
      subMenuItem2.SetIcon(Resource.Drawable.blue);
      subMenu.Add(0, menuItemId + 60, menuItemOrder + 6, "子菜单-3" ).SetCheckable(true);
      return true;
    }

    public override bool OnOptionsItemSelected(IMenuItem item)
    {
      Toast.MakeText(this, "当前菜单编号" + item.ItemId, ToastLength.Long).Show();
      return base.OnOptionsItemSelected(item);
    }
    public override void OnCreateContextMenu(IContextMenu menu, View v, IContextMenuContextMenuInfo menuInfo)
    {
      base.OnCreateContextMenu(menu, v, menuInfo);
      menu.SetHeaderTitle("上下文菜单");
      menu.SetHeaderIcon(Resource.Drawable.blue);
      menu.Add(0, Menu.First, Menu.None, "菜单1");
      menu.Add(0, Menu.First+1,Menu.None, "菜单2").SetShortcut(&#39;2&#39;,&#39;B&#39;);
      menu.Add(0, Menu.First + 2, Menu.None, "菜单3");
      var subMenu = menu.AddSubMenu("子菜单");
      subMenu.Add("子菜单选项");
    }
  }
}
ログイン後にコピー

レイアウト

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:minWidth="25px"
  android:minHeight="25px">
  <ImageView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/iv" />
</LinearLayout>
ログイン後にコピー

ランニングエフェクト

Java実装

package com.example.halower.menudemo;

import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.View;
import android.widget.ImageView;

public class MainActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ImageView iv=(ImageView)findViewById(R.id.iamgeView);
    iv.setImageResource(R.drawable.test);
    registerForContextMenu(iv);
  }

  @Override
  public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuInflater inflater=new MenuInflater(this);
    inflater.inflate(R.menu.menu_main,menu);
    menu.setHeaderIcon(R.drawable.blue);
    menu.setHeaderTitle(R.string.menuTitle);
  }
}
ログイン後にコピー

レイアウト

<?xml version="1.0" encoding="utf-8"?>
<resources>

  <string name="app_name">MenuDemo</string>
  <string name="action_settings">Settings</string>
  <string name="item1Name" >菜单1</string>
  <string name="item2Name" >菜单2</string>
  <string name="item3Name" >菜单3--More</string>
  <string name="item4Name" >菜单4</string>
  <string name="menuTitle">XML中解析菜单</string>
  <string name="subitem1Name">子菜单1</string>
  <string name="subitem2Name">子菜单2</string>
</resources>
ログイン後にコピー

以上がC# と Java をそれぞれ使用して実装された Android 模倣 WeChat メニューの例を共有しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

マルチスレッドと非同期C#の違い マルチスレッドと非同期C#の違い Apr 03, 2025 pm 02:57 PM

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。

カプセルの量を見つけるためのJavaプログラム カプセルの量を見つけるためのJavaプログラム Feb 07, 2025 am 11:37 AM

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4

XML形式を開く方法 XML形式を開く方法 Apr 02, 2025 pm 09:00 PM

ほとんどのテキストエディターを使用して、XMLファイルを開きます。より直感的なツリーディスプレイが必要な場合は、酸素XMLエディターやXMLSPYなどのXMLエディターを使用できます。プログラムでXMLデータを処理する場合、プログラミング言語(Pythonなど)やXMLライブラリ(XML.ETREE.ELEMENTTREEなど)を使用して解析する必要があります。

XMLを単語に変換する方法 XMLを単語に変換する方法 Apr 03, 2025 am 08:15 AM

XMLを単語に変換するには、Microsoft Wordの使用、XMLコンバーターの使用、またはプログラミング言語の使用方法が3つあります。

Spring Tool Suiteで最初のSpring Bootアプリケーションを実行するにはどうすればよいですか? Spring Tool Suiteで最初のSpring Bootアプリケーションを実行するにはどうすればよいですか? Feb 07, 2025 pm 12:11 PM

Spring Bootは、Java開発に革命をもたらす堅牢でスケーラブルな、生産対応のJavaアプリケーションの作成を簡素化します。 スプリングエコシステムに固有の「構成に関する慣習」アプローチは、手動のセットアップを最小化します。

PHP対Python:違いを理解します PHP対Python:違いを理解します Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

CとC#の違いと接続は何ですか? CとC#の違いと接続は何ですか? Apr 03, 2025 pm 10:36 PM

CとC#には類似点がありますが、それらは完全に異なります。Cはプロセス指向の手動メモリ管理、およびシステムプログラミングに使用されるプラットフォーム依存言語です。 C#は、デスクトップ、Webアプリケーション、ゲーム開発に使用されるオブジェクト指向のガベージコレクション、およびプラットフォーム非依存言語です。

See all articles