Android常用部分小功能代码

本文汇总了一系列Android UI开发中的实用技巧,包括控件焦点设置、文本截断显示、圆形背景绘制、根视图获取、图片加载及显示优化等。通过这些技巧可以提升应用程序的用户体验。

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. <?xmlversion="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. <solidandroid: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. <sizeandroid:width="15dp"
  18. android:height="15dp"/>
  19. </shape>


4.从当前Activity获得根视图

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

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

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

6.ImageView图像不拉伸

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

  1. android:scaleType="center"

7.获取手机分辨率

  1. //获取屏幕分辨率
  2. DisplayMetricsdm=newDisplayMetrics();
  3. getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
  4. intmScreenWidth=dm.widthPixels;
  5. intmScreenHeight=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-permissionandroid:name="android.permission.INTERNET"/><!--联网权限-->
b.在代码中使用Picasso.jar ( Picasso官网Picasso下载) 显示图片:
  1. ContextmContext=this;//获取context
  2. ImageViewiv=(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. privateViewinitPagerItem(Stringurl){
  3. LayoutInflatermLayoutInflater=null;
  4. Viewlayout1=mLayoutInflater.inflate(R.layout.tuijian_header,null);
  5. ImageViewimageView1=(ImageView)layout1.findViewById(R.id.tuijian_header_img);
  6. ImageLoader.getInstance().displayImage(url,imageView1,ImageLoaderEffect.effect());
  7. returnlayout1;
  8. }
12.dp、px单位转换
  1. //根据手机的分辨率从dp的单位转成为px(像素)
  2. publicstaticintdpToPx(Contextcontext,floatdpValue){
  3. finalfloatscale=context.getResources().getDisplayMetrics().density;
  4. return(int)(dpValue*scale+0.5f);
  5. }
  6. //根据手机的分辨率从px(像素)的单位转成为dp
  7. publicstaticintpxToDp(Contextcontext,floatpxValue){
  8. finalfloatscale=context.getResources().getDisplayMetrics().density;
  9. return(int)(pxValue/scale+0.5f);
  10. }

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

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

14.异常处理机制

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

15.ScrollView置顶

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

17.移除listview的某一个item

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

18.生成随机数

  1. Randomrandom=newRandom();
  2. inti=random.nextInt(10);//随机生成0-9的随机数

19.几秒钟后跳过

  1. //5秒后跳转转Activity
  2. privatevoidjustLuckResult(){
  3. finalIntentmIntent=newIntent(this,Activity1.class);//你要转向的Activity
  4. TimermTimer=newTimer();
  5. TimerTasktask=newTimerTask(){
  6. @Override
  7. publicvoidrun(){
  8. startActivity(mIntent);//执行
  9. }
  10. };
  11. mTimer.schedule(task,1000*5);//5秒后
  12. }
20.将16进制颜色转换为int型
  1. intcolor=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. Viewview=LayoutInflater.from(mContext).inflate(R.layout.activity_main,null);
24.获取音频文件时长
  1. privateintgetAmrDuration(Stringpath){
  2. try{
  3. MediaPlayermediaPlayer=newMediaPlayer();
  4. mediaPlayer.setDataSource(path);
  5. mediaPlayer.prepare();//缓冲
  6. intduration=mediaPlayer.getDuration()/1000;
  7. mediaPlayer.release();
  8. mediaPlayer=null;
  9. returnduration;
  10. }catch(Exceptione){
  11. return0;
  12. }
  13. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值