解决popupwindow中弹出输入法被遮挡问题,在Popupwindow中有EditText,当点选EditText后输入法在popupwindow后面显示了,其实在popupwindow中有个输入法配置选项。最关键就是设置输入模式 就是这里

nava_home_popupWindow.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);

这样就可以让popupWindow显示在最前面而不受软键盘的影响。


获取联系人头像:

ContentResolver cr = view.getContext().getContentResolver();
Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,
Long.parseLong(contact.contact_id));
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri);
Bitmap photo = BitmapFactory.decodeStream(input);


当我们点击了某个控件,首先会去调用该控件所在布局的dispatchTouchEvent方法,然后在布局的dispatchTouchEvent方法中找到被点击的相应控件,再去调用该控件的dispatchTouchEvent方法。如果我们点击了MyLayout中的按钮,会先去调用MyLayout的dispatchTouchEvent方法,可是你会发现MyLayout中并没有这个方法。那就再到它的父类LinearLayout中找一找,发现也没有这个方法。那只好继续再找LinearLayout的父类ViewGroup,你终于在ViewGroup中看到了这个方法,按钮的dispatchTouchEvent方法就是在这里调用的。


自定义类加载器:

public class ClassLoaderTest {        public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {          //新建一个类加载器          MyClassLoader cl = new MyClassLoader("myClassLoader");          //加载类,得到Class对象          Class<?> clazz = cl.loadClass("classloader.Animal");          //得到类的实例          Animal animal=(Animal) clazz.newInstance();          animal.say();      }    }  
class Animal{      public void say(){          System.out.println("hello!");      }  }  
class MyClassLoader extends ClassLoader {      //类加载器的名称      private String name;      //类存放的路径      private String path = "E:\\testclassloader\\src";        MyClassLoader(String name) {          this.name = name;      }            MyClassLoader(ClassLoader parent, String name) {          super(parent);          this.name = name;      }      /**      * 重写findClass方法      */      @Override      public Class<?> findClass(String name) {          byte[] data = loadClassData(name);          return this.defineClass(name, data, 0, data.length);      }      public byte[] loadClassData(String name) {          try {              name = name.replace(".", "//");              FileInputStream is = new FileInputStream(new File(path + name + ".class"));              ByteArrayOutputStream baos = new ByteArrayOutputStream();              int b = 0;              while ((b = is.read()) != -1) {                  baos.write(b);              }              return baos.toByteArray();          } catch (Exception e) {              e.printStackTrace();          }          return null;      }  }  

linearLayout来控制类似于相对布局的xml文件

<LinearLayout 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:orientation="vertical"    tools:context=".MainActivity" >    <LinearLayout        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1"        android:background="#ff0000" />    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="#00ff00"        android:gravity="bottom" >        <TextView            android:layout_width="match_parent"            android:layout_height="match_parent"            android:text="sdfsdfal" />    </LinearLayout></LinearLayout>


android监听系统来电:

//首先为监听器赋初始值private TelephonyManager mTelephonyManager; PhoneStateListener pListener = new PhoneStateListener(){              @Override              public void onCallStateChanged(int state, String number) {                  // TODO Auto-generated method stub                  switch (state) {                  case TelephonyManager.CALL_STATE_IDLE://无任何状态                                         break;                  case TelephonyManager.CALL_STATE_OFFHOOK://接听来电                       writeFile(state,number);                      break;                  case TelephonyManager.CALL_STATE_RINGING://来电                         incomingNumber=number;                      writeFile(state,number);                      break;                  default:                      break;                  }                                 super.onCallStateChanged(state, incomingNumber);              }                     };  //注意需要在oncreate()中这样写:mTelephonyManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);

关于android中音频焦点的获取:

private OnAudioFocusChangeListener mFocusChangeListener = null;private boolean mGetFocus = false;mFocusChangeListener = new OnAudioFocusChangeListener() {@Overridepublic void onAudioFocusChange(int focusChange) {if (focusChange == AudioManager.AUDIOFOCUS_GAIN) {                                        //获得音频焦点时mGetFocus = true;} else if (focusChange == AudioManager.AUDIOFOCUS_LOSS|| focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT) {                                        //失去音频焦点时mGetFocus = false;}}};        //获取音频焦点private boolean requestAudioFocus() {        if (!mGetFocus) {            int result = audioManager.requestAudioFocus(mFocusChangeListener,                    AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);            if (result != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {                mGetFocus = false;            } else {                mGetFocus = true;            }        }        return mGetFocus;    }//失去音频焦点private void abandonAudioFocus() {        if (mGetFocus && (null != audioManager) && (null != mFocusChangeListener)) {            if (AudioManager.AUDIOFOCUS_REQUEST_GRANTED == audioManager                    .abandonAudioFocus(mFocusChangeListener)) {                mGetFocus = false;            } else {                mGetFocus = true;            }        }    }





更多相关文章

  1. Android(安卓)Studio - 快捷键详解-MAC版
  2. PreferenceFragment详解
  3. React Native填坑之旅--与Android模块通信
  4. 解决Android帧动画在Oncreate中启动只显示第一帧
  5. Android模拟翻书效果
  6. Android(安卓)studio2.2 启动模拟器出现“/dev/kvm is not found
  7. Android(安卓)拍照裁剪图片不清晰解决办法
  8. Fragment Arguments
  9. Android屏幕区域划分及尺寸获取

随机推荐

  1. Android(安卓)MediaPlayer支持的音视频格
  2. Google I/O之Android(安卓)Studio使用--a
  3. Android(安卓)AlertDialog 方法setView(v
  4. EditText 笔记
  5. android用户界面-组件Widget-网络视图Web
  6. Bundle使用心得
  7. android String 类型转换成UTF-8格式
  8. Android中adb shell dumpsys相关命令
  9. 走进Java Android(安卓)的线程世界(三)Hand
  10. 数据存储之SharedPreferences存储——第