使用视图显示图片和菜单

显示图片的视图控件

  • GridView 添加方式:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <GridView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/gridview"
    android:numColumns="auto_fit"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:columnWidth="90dp"
    android:stretchMode="columnWidth"/>//缩放与列宽同步
    其中 verticalSpacing 表示 grid 元素之间的竖直距离,horizontalSpacing 表示 grid 元素之间的水平距离。 常用方法:

    1
    2
    3
    4
    5
    6
    7
    gridView.setAdapter(new ImageAdapter(this));
    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    Toast.makeText(getBaseContext(), "pic" + (position + 1) + "selected", Toast.LENGTH_SHORT).show();
    }
    });

    显示效果:


菜单和视图一起显示

常用方法:

  • CreateMenu(Menu menu) 创建菜单项

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    private void CreateMenu(Menu menu) {
    MenuItem mnu1 = menu.add(0, 0, 0, "Item 1");
    {
    mnu1.setAlphabeticShortcut('a');
    }

    MenuItem mnu2 = menu.add(0, 1, 1, "Item 2");
    {
    mnu2.setAlphabeticShortcut('a');
    }
    }
    add() 方法中4个参数:

    1. groupId 菜单项所在的组的标识符,0 表示不在一个组中。
    2. itemId 唯一的菜单项ID
    3. order 菜单项显示的顺序
    4. title 菜单项显示的文本
  • MenuChoice(MenuItem item) 用于判断菜单项是否被选中

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    private boolean MenuChoice(MenuItem item) {
    switch (item.getItemId()) {
    case 0:
    Toast.makeText(this, "You clicked on Item1", Toast.LENGTH_SHORT).show();
    return true;
    case 1:
    Toast.makeText(this, "You clicked on Item2", Toast.LENGTH_SHORT).show();
    return true;
    }
    return false;
    }=

  • onCreateOptionsMenu() 当 MENU 按钮按下时调用

    1
    2
    3
    4
    5
    public boolean onCreateOptionsMenu (Menu menu) {
    super.onCreateOptionsMenu(menu);
    CreateMenu(menu);
    return true;
    }

  • onOptionsItemSelected() 选择菜单时调用

    1
    2
    3
    public boolean onOptionsItemSelected (MenuItem item){
    return MenuChoice(item);
    }

  • setOnCreateContextMenuListener 设置上下文菜单 通过设置 setOnCreateContextMenuListener 方法,然后实现 onCreateContextMenu 方法即可。

    1
    2
    3
    4
    5
    public void onCreateContextMenu(ContextMenu menu,
    View view, ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, view, menuInfo);
    CreateMenu(menu);
    }
      实现效果如图:


WebView

  • 添加 WebView

    1
    2
    3
    4
    <WebView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/webview"/>

  • 避免启动设备的 Web 浏览器 实现 WebViewClient 类重写 shouldOverrideUrlLoading

    1
    2
    3
    4
    5
    6
    7
    webView.setWebViewClient(new CallBack());
    public class CallBack extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
    return (false);
    }
    }