Android常用部分小功能代码

 0.永远记住:代码不会无故出错!  1.水平不行,就该骂!  2当你没有价值的时候,就没有了话语权!

 1.给控件设置焦点

  1. tvTitle.setFocusable(true);  
  2. tvTitle.setFocusableInTouchMode(true);  
  3. tvTitle.requestFocus();  
  4. tvTitle.requestFocusFromTouch();  

 2.TextView超出部分末尾用"..."代替

  1. android:singleLine="true"  
  2. android:ellipsize="end"  

 3.圆形背景

在res/drawable文件件中新建***.xml文件 内容如下:

然后在控件中引用背景

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <shape   
  3.     xmlns:android="http://schemas.android.com/apk/res/android"  
  4.     android:shape="oval"  
  5.     android:useLevel="false" >  
  6.     <solid android:color="#F05F4C" />  
  7.     <padding   
  8.         android:left="2dp"   
  9.         android:top="1dp"   
  10.         android:right="2dp"   
  11.         android:bottom="1dp" />  
  12.     <solid  
  13.         android:color="#F05F4C" />  
  14.     <stroke  
  15.         android:width="1dp"  
  16.         android:color="@android:color/white" />  
  17.     <size android:width="15dp"  
  18.           android:height="15dp" />  
  19. </shape>  


 4.从当前Activity获得根视图 

getWindow().getDecorView()就是根视图了,当然用Activity.getWindow.getDecorView()来表达意思更为明确。

 5.动态设置Android:drawableLeft|Right|Top|Bottom 

  1. Drawable img;  
  2. Resources res = getResources();  
  3. img = res.getDrawable(imgPath);  
  4. //调用setCompoundDrawables时,必须调用Drawable.setBounds()方法,否则图片不显示  
  5. img.setBounds(00, img.getMinimumWidth(), img.getMinimumHeight());  
  6. TextView tv;  
  7. tv.setCompoundDrawables(img, nullnullnull); //设置左图标  

 6.ImageView图像不拉伸 

在ImageView控件布局代码中,加入下面这一句属性

  1. android:scaleType="center"  

 7.获取手机分辨率 

  1. // 获取屏幕分辨率  
  2. DisplayMetrics dm = new DisplayMetrics();  
  3. getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);  
  4. int mScreenWidth = dm.widthPixels;  
  5. int mScreenHeight = dm.heightPixels;  
  6. System.out.println("该手机高度为:" + mScreenHeight + "像素   宽度为:" + mScreenWidth + "像素");  

 8.Color工具类 parseColor 

  1. btn.setBackgroundColor(Color.parseColor("#87CEFA"));  

 9.Eclipse不自动生成R文件 

前提是确定项目没有错误:打开Eclipse - 工具栏 - Project - Clean... - Clean projects selected below - OK.

 10.图片加载 

a.在AndroidManifest.xml文件里添加联网权限:

  1. <uses-permission android:name="android.permission.INTERNET" /> <!-- 联网权限 -->  
b.在代码中使用Picasso.jar (Picasso官网 、 Picasso下载) 显示图片:
  1. Context mContext = this ; //获取context  
  2. ImageView iv = (ImageView) findViewById(R.id.iv);//初始化控件  
  3. Picasso.with(mContext).load("http://i.imgur.com/DvpvklR.png").into(iv);//用Picasso.jar将图片显示到控件上  

 11.返回View 

  1. //返回ViewPager每个view  
  2. private View initPagerItem(String url) {  
  3.     LayoutInflater mLayoutInflater = null;  
  4.     View layout1 = mLayoutInflater.inflate(R.layout.tuijian_header, null);  
  5.     ImageView imageView1 = (ImageView) layout1.findViewById(R.id.tuijian_header_img);  
  6.     ImageLoader.getInstance().displayImage(url,imageView1 ,ImageLoaderEffect.effect());  
  7.     return layout1;  
  8. }  
 12.dp、px单位转换 
  1. //根据手机的分辨率从 dp 的单位 转成为 px(像素)  
  2. public static int dpToPx(Context context, float dpValue) {    
  3.     final float scale = context.getResources().getDisplayMetrics().density;    
  4.     return (int) (dpValue * scale + 0.5f);    
  5. }    
  6.     
  7. //根据手机的分辨率从 px(像素) 的单位 转成为 dp  
  8. public static int pxToDp(Context context, float pxValue) {    
  9.     final float scale = context.getResources().getDisplayMetrics().density;    
  10.     return (int) (pxValue / scale + 0.5f);    
  11. }  

 13.一个字符串中是否包含某个字符 

  1. if("你好 Android".contains("Android")){  
  2.             System.out.println("你好Android中包含Android字符");  
  3.         }  

 14.异常处理机制 

  1. try{  
  2. //代码区  
  3. }catch(Exception e){  
  4. //异常处理  
  5. }  

 15.ScrollView置顶 

  1. mScrollView.smoothScrollTo(00);  
 16.动态设置控件属性 

 17.移除listview的某一个item 

  1. UserHomePageActivity.listItem.remove(position);//删除此条数据  
  2. this.notifyDataSetChanged();//通知适配器数据源改变  
在自定义适配器里调用remove()方法,删除数据源中item对应的这条数据;然后再this.notifyDataSetChanged();通知适配器数据源改变;这样就达到了删除一条itm的目的

 18.生成随机数 

  1. Random random = new Random();  
  2. int i = random.nextInt(10);//随机生成0-9的随机数  

 19.几秒钟后跳过 

  1. //5秒后跳转转Activity  
  2.     private void justLuckResult(){  
  3.         final Intent mIntent = new Intent(this, Activity1.class); //你要转向的Activity     
  4.         Timer mTimer = new Timer();   
  5.         TimerTask task = new TimerTask() {    
  6.             @Override    
  7.             public void run() {     
  8.             startActivity(mIntent); //执行    
  9.              }   
  10.          };  
  11.         mTimer.schedule(task, 1000 * 5); //5秒后  
  12.     }  
 20.将16进制颜色转换为int型 
  1. int color = Color.parseColor("#FE555A")  

21.Dialog点击周边不消失

  1. dialog.setCanceledOnTouchOutside(false);// 设置点击屏幕Dialog不消失  

22.TextView上下滑动
  1. android:scrollbars="vertical"//布局文件:设置滚动条的垂直显示  
  2. android:fadeScrollbars="false"//布局文件:设置滚动条是否一直存在  
  1. textView.setMovementMethod(ScrollingMovementMethod.getInstance());//代码中设置  
 23.获取View 
  1. View view= LayoutInflater.from(mContext).inflate(R.layout.activity_main, null);  
 24.获取音频文件时长 
  1. private int getAmrDuration(String path) {  
  2.     try {  
  3.         MediaPlayer mediaPlayer = new MediaPlayer();  
  4.         mediaPlayer.setDataSource(path);  
  5.         mediaPlayer.prepare();//缓冲  
  6.         int duration = mediaPlayer.getDuration() / 1000;  
  7.         mediaPlayer.release();  
  8.         mediaPlayer = null;  
  9.         return duration;  
  10.     } catch (Exception e) {  
  11.         return 0;  
  12.     }  

原文地址:https://www.cnblogs.com/miaozhenzhong/p/5931015.html