menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/textSize_big"
android:title="放大"/>
<item
android:id="@+id/textSize_small"
android:title="缩小"/> </menu>

layout.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" > <TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
android:textSize="20sp" /> </RelativeLayout>

main.java

package com.example.day10_contextview;

import android.os.Bundle;
import android.app.Activity;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.TextView;
import android.widget.Toast; /* contextmenu 作用在view
1.在menu文件的main.xml中编写菜单
2.在activity中创建菜单
在onCreateContextMenu方法中创建
//加载菜单布局
getMenuInflater().inflate(R.menu.main, menu);
3.和view进行绑定
将contextmenu注册到控件
registerForContextMenu(tvHello);
4.触发
长按控件会触发菜单,以对话框的形式展示,点击后自动隐藏 contextmenu和optionsmenu的点击事件都会先触发onMenuItemSelected该方法,
然后该方法再根据menu特征分发到不同的 菜单相应事件,
contextmenu触发onContextItemSelected,
optionsmenu触发onOptionsItemSelected contextmenu对比optionmenu
1.触发条件不一样,optionmenu 点击menu,contextmenu需要长按对应的控件
2.展示,optionmenu 一级菜单在底部展示,二级以对话框展示,contextmenu直接一对话框展示
3.作用点 optionmenu是相对于activity的菜单, contextmenu相对于view
*/
public class MainActivity extends Activity {
private float size ;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.text);
//将contextMenu注册到控件上
registerForContextMenu(textView); }
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
//加载菜单布局
getMenuInflater().inflate(R.menu.main, menu); }
/**
* ContextMenu的点击事件
* 实现字体的放大缩小功能
*/
@Override
public boolean onContextItemSelected(MenuItem item) {
size = textView.getTextSize();
switch (item.getItemId()) {
case R.id.textSize_big:
size += 5;
if(size<50){
textView.setTextSize(size);
Toast.makeText(MainActivity.this, "TextView的字体大小:"+size+"sp", 0).show();
}
break;
case R.id.textSize_small:
size -= 5;
if(size>10){
textView.setTextSize(size);
Toast.makeText(MainActivity.this, "TextView的字体大小:"+size+"sp", 0).show();
break;
}
}
return super.onContextItemSelected(item);
} }

Android_CntextMenu_example_textSize的更多相关文章

随机推荐

  1. HDU2859 Phalanx 简单DP

    dp[i][j]代表以s[i][j]字符为右上角的最大对称方阵的尺寸 最左边那一列都为1,然后按列更新,代码实现比较简单,感觉有点卡时间,如果对称度很好,时间应该比较高,我只会这种了 #include ...

  2. 设计模式_Bridge

    形象的例子: —早上碰到MM,要说早上好,晚上碰到MM,要说晚上好:碰到MM穿了件新衣服,要说你的衣服好漂亮哦,碰到MM新做的发型,要说你的头发好漂亮哦.不要问我“早上碰到MM新做了个发型怎么说”这种 ...

  3. Jquery+bootstrap实现静态博客主题

    来源:个人博客     body部分:   side部分:     文章页面: 下载链接:             Fork Git: https://github.com/dwqs/theme1   ...

  4. Javascript and DOM学习

    1.输出 document.write.(); 2.alert警告 3.confirm消息对话框:当用户点击"确定"按钮时,返回true,取消时,返回false 4.prompt提 ...

  5. Xcode5和ios7下交叉编译ffmpeg

    先申明本机环境 dev-mini:ffmpeg devone$ sw_vers  ProductName:    Mac OS X ProductVersion:  BuildVersion:   1 ...

  6. python basic programs

  7. 【转】#include_next <filename.h>

    转载自 http://bbs.csdn.net/topics/390381450 #include_next仅用于特殊的场合. 它被用于头文件中(#include既可用于头文件中, 又可用于.c文件中 ...

  8. SQL2008--行号的得到

    WITH DataTable AS( select *, ROW_NUMBER() OVER(order by ID) as Rowno from (select * from UserInfo) a ...

  9. Mysql安装详解

    1.MySQL三种安装方式 Rpm包安装 免编译二进制包安装 源码编译安装 1.1.安装环境 Red Hat Enterprise Linux Server release 6.4 2.安装介绍 2. ...

  10. [Objective-c 基础 - 2.3] 继承、组合

    A.继承的实现: is a 1.不允许子类.父类存在相同的成员变量 2.方法调用优先原则:子类调用方法的时候,优先从本类寻找,若无则向上在父类中寻找 3.重写:子类重新实现父类的方法,覆盖父类之前的方 ...