android之界面一些操作

转自火星某位

包括:     ①、获取屏幕尺寸

②、隐藏EditText键盘

③、打开键盘

④、关闭键盘

⑤、根据手机的分辨率从dp的单位转成px(像素)

⑥、根据手机的分辨率从px(像素)的单位转成dp

import android.app.Activity;
import android.content.Context;
import android.text.InputType;
import android.util.DisplayMetrics;
import android.view.MotionEvent;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;

/**
 * @name ViewHelper
 * @description 常用的系统控件操作,与业务相关
 * @author max
 * @date 2012-12-11
 *
 */
public class ViewHelper {

    /**
     * 取得屏幕尺寸 add by max [2013-1-21]
     *
     * @param activity
     * @return
     */
    public static DisplayMetrics getDisplayMetrics(Activity activity) {
        DisplayMetrics dm = new DisplayMetrics();
        activity.getWindowManager().getDefaultDisplay().getMetrics(dm);
        return dm;
    }
    /**
     * 取得屏幕尺寸 add by max [2013-5-11]
     *
     * @param context
     * @return
     */
    public static DisplayMetrics getDisplayMetrics(Context context) {
        DisplayMetrics dm = context.getResources().getDisplayMetrics();
        return dm;
    }

    /**
     * 隐藏EditeText键盘 {@code} setOnTouchListener(new OnTouchListener() { public
     * boolean onTouch(View v, MotionEvent event) { return true;
     *
     * @param et
     *            EditeText
     */
    public static void hiddenKeyboard(EditText et, MotionEvent event) {
        int inType = et.getInputType();
        et.setInputType(InputType.TYPE_NULL);
        et.onTouchEvent(event);
        et.setInputType(inType);
        et.setSelection(et.getText().length());
    }

    /**
     * 打开键盘 add by max [2013-8-11]
     */
    public static void openKeyboard(final Context context) {
        InputMethodManager imm = (InputMethodManager) context
                .getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
    }
    /**
     * 关闭键盘 add by max [2013-7-2]
     *
     * @param context
     * @param etInput
     */
    public static void closeKeyboard(Activity activity) {
        InputMethodManager inputManager = (InputMethodManager) activity
                .getSystemService(Context.INPUT_METHOD_SERVICE);
        inputManager.hideSoftInputFromWindow(activity.getCurrentFocus()
                .getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
    }

    /**
     * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
     */
    public static int dip2px(Context context, float dpValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dpValue * scale + 0.5f);
    }

    /**
     * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
     */
    public static int px2dip(Context context, float pxValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }
}
时间: 2024-10-07 10:26:26

android之界面一些操作的相关文章

Android studio界面相关设置

Android studio界面相关设置 原文出自 http://www.cnblogs.com/justinzhang/p/4274839.html 用惯了emacs的操作方式,每当使用一款新的编辑器的时候,第一个想到的就是这个工具有没有emacs的快捷键,Android studio也是一样的. 1. Android studio设置emacs的方式如下,点击File->Settings 选择其中的keymap,在keymap中选择emacs,这样就成功的设置好了emacs的操作模式: 2.

Android流行界面结构——Fragment通过ViewPager(带指示器)嵌套Fragment结构的创建方法详解

原创文章,转载请注明出处http://www.cnblogs.com/baipengzhan/p/6287213.html 当前Android流行界面结构的一种--Fragment通过ViewPager嵌套Fragment结构目前非常常用,在本篇文章中, 我们一步一步将其创建出来,非常详细的让大家看到这个界面是如何实现的,下面我们开始吧. 首先我们看一下最终的效果动画,以便大家有个最初的印象. 本文章专注于功能的实现,并没有着重于界面的美观,所以大家看到的效果一般,UI效果需要大家进一步修改.

Android 设置界面修改为Iphone的tab菜单风格

好久没有写博客了!最近做了Android 设置的列表菜单风格改为Iphone的tab菜单风格的尝试!我知道,有许多朋友有自己的方式已经实现了这个界面风格的开发,今天大家来看看我的做法吧! 做这个开发前,首先要看看Android默认的设置列表菜单风格的实现!由 AndroidManifest.xml可以知道Settings这个Activity是我们关注的焦点!所以我们来到Settings.java来一探究竟,从中我们可以清除的知道他其实是一个PreferenceActivity,而Preferen

Android 蓝牙的常用操作

最近对Android设备的蓝牙操作进行了一些研究, 下面做一些总结, 版本是4.4,列出的解决方案多来源于网络,感谢强大的网友们: 操作蓝牙可以分为常规的操作,和非常规的操作.所谓常规的操作,就是界面上有提示,需要客户许可进行的一些操作.非常规的则通常是采用反射等手段,达到不知不觉连接蓝牙的目的. 一. 常规操作: 1. 获取蓝牙的操作接口: BluetoothAdapter mBtAdapter = BluetoothAdapter.getDefaultAdapter(); 蓝牙的相关操作基本

Android数据存储-文件操作

一.预备知识 1.Android中的MVC设计模式 MVC (Model-View-Controller):M是指逻辑模型,V是指视图模型,C则是控制器.一个逻辑模型可以对于多种视图模型,比如一批统计数据你可以分别用柱状图.饼图来表示.一种视图模型也可以对于多种逻辑模型.使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式,而C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新,这与<设计模式>中的观察者模式是完全一样. MVC好处:从用户的角度出发,用户可

Android典型界面设计(5)——使用SlidingMenu和DrawerLayout分别实现左右侧边栏

一.问题描述 侧边栏是Android应用中十分常见的界面效果,可随主屏在左侧或右侧联动,是特别适应手机等小屏幕特性的典型界面设计方案之一,常用作应用的操作菜单,如图所示 实现侧边栏可以使用第三方组件slidingmenu实现和Google官方提供的滑动抽屉组件DrawerLayout实现,下面就分别使用这两种方法实现左右滑动的侧边栏 二.先使用之前讲过的ActionBar制作标题栏 这里只贴出代码,相关知识请查阅 <Android典型界面设计(4)--使用ActionBar+Fragment实现

设计师可以写Android应用界面吗?

============问题描述============ 我是一名设计师,每次设计完app后把切好的图和效果图给开发后,开发们都要花大量时间对着效果图把界面效果写出来,弄好界面后才是开发功能. 而且开发写出来的界面和设计给的效果图经常会有差别,还需要反复修改. 我想问的是: 设计师是否可以直接把界面写好,再交给开发直接做功能就行呢?如果可以,需要设计师有编程的基础吗? 还想知道大公司里,设计与开发之间是怎么分工合作的? ============解决方案1============ 是可以的,但是需

android DataBase的相关操作(建立表结构和创建表)

先建立一个table的基类: public abstract class DbBaseTable { private static final String TAG = "DbBaseTable"; /** * @return the DB table name */ abstract String getName(); /** * Creates the DB table according to the DB scheme * * @param db */ abstract voi

Android 遍历界面控件

//遍历界面上的控件 fubin.pan LinearLayout sLinerLayout = (LinearLayout)findViewById(R.id.layout_scr); for (int i = 0; i < sLinerLayout.getChildCount(); i++) { View v=sLinerLayout.getChildAt(i); if ( v instanceof RadioGroup){ RadioGroup mRadioGroup = (RadioGr