android 基础知识 十

本文介绍了Android开发中的几项实用技巧,包括使用振动器实现不同模式的震动反馈、创建带有输入框的对话框以增强用户交互体验、TextView内容过长时添加省略号的方法、以及在TextView中正确显示HTML内容及图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android的振动器Vibrator

Android的振动器用起来很简单

  1. Vibrator vv = (Vibrator)getApplication().getSystemService(Service.VIBRATOR_SERVICE);
  2. vv.vibrate(500);
  3. //震半秒钟vv.vibrate(new long[]{10, 100, 20, 200}, -1);解释:
  4. vv.vibrate(new long[]{10, 100, 20, 200}, -1);
复制代码
表示停10ms, 震100ms, 停20ms,震200ms
-1 表示不重复!
非-1表示从指定的下标开始重复震动;如第二个参数是0, 则一圈一圈的循环震动下去了;
如果是2,这第一遍震动后,从“20”这个参数开始再循环震动!
一般用vv.vibrate(500);//震半秒钟
--------------------------------------------------------------------------------
带输入框(EditText)的AlertDialog一、Main Class:

  1. public void search() {
  2.     Builder dialog = new AlertDialog.Builder(this);
  3.     LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  4.     LinearLayout layout = (LinearLayout)inflater.inflate(R.layout.dialogview, null);
  5.     dialog.setView(layout);
  6.     et_search = (EditText)layout.findViewById(R.id.searchC);
  7.       
  8.     dialog.setPositiveButton("查找", new DialogInterface.OnClickListener() {
  9.         public void onClick(DialogInterface dialog, int which) {
  10.             String searchC = et_search.getText().toString();
  11.             Intent intent = new Intent();
  12.             Bundle bundle = new Bundle();
  13.             bundle.putString("search", searchC);
  14.             intent.putExtras(bundle);
  15.             intent.setClass(ViewResultActivity.this, SearchResult.class);
  16.             ViewResultActivity.this.startActivity(intent);
  17.         }
  18.     });
  19.       
  20.     dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
  21.         public void onClick(DialogInterface dialog, int which) {
  22.               
  23.         }
  24.     });
  25.     dialog.show();
  26. }
复制代码
二、dialogview.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android "
  3.     android:orientation="vertical"
  4.     android:layout_width="fill_parent"
  5.     android:layout_height="fill_parent">
  6.     <EditText
  7.         android:id="@+id/searchC"
  8.         styles="@style/edittext_style1"
  9.         android:layout_width="200px"
  10.         android:layout_height="wrap_content"
  11.         android:gravity="left"
  12.         />
  13. </LinearLayout>
复制代码
--------------------------------------------------------------------------
Android TextView内容过长加省略号
在Android TextView中有个内容过长加省略号的属性,即ellipsize,用法如下:
在xml中:
android:ellipsize = "end"    省略号在结尾
android:ellipsize = "start"   省略号在开头
android:ellipsize = "middle"     省略号在中间
android:ellipsize = "marquee"  跑马灯
最好加一个约束android:singleline = "true"
也可以用代码语句
tv.setEllipsize(TextUtils.TruncateAt.valueOf("END"));
tv.setEllipsize(TextUtils.TruncateAt.valueOf("START"));
tv.setEllipsize(TextUtils.TruncateAt.valueOf("MIDDLE"));
tv.setEllipsize(TextUtils.TruncateAt.valueOf("MARQUEE"));
最好再加一个约束tv.setSingleLine(true);
不仅对于textview有此属性,对于editext也有,不过它不支持marquee

--------------------------------------------------------------------------------
Android TextView中显示HTML和图片
如何在Android TextView中显示<img src=""/> html标签内的图片,大家都知道,在TextView中显示HTML内容的方法如下所示:

  1. TextView description=(TextView)findViewById(R.id.description);
  2. description.setText(Html.fromHtml(item.getDescription()));
复制代码
如果HTML中有图片的话,显示出来的图片会被一个小框取代,那么怎么样才能看到图片呢?查看了一下API,android.text.Html还还有另一个方法:Html.fromHtml(String source,ImageGetter imageGetter,TagHandler tagHandler),这个方法使用如下所示:

  1. ImageGetter imgGetter = new Html.ImageGetter() {
  2.     public Drawable getDrawable(String source) {
  3.         Drawable drawable = null;
  4.         Log.d("Image Path", source);
  5.         URL url;
  6.         try {
  7.             url = new URL(source);
  8.             drawable = Drawable.createFromStream(url.openStream(), "");
  9.         }
  10.         catch (Exception e) {
  11.             return null;
  12.         }
  13.         drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
  14.         return drawable;
  15.     }
  16. };
  17. .........
  18. TextView description=(TextView)findViewById(R.id.description);
  19. description.setText(Html.fromHtml(item.getDescription(),imgGetter,null));
复制代码
第二个参数TagHandler是处理HTML中的标签的,比如说遇到某个标签就把它替换为….之类的操作都可以通过TagHandler来处理,呵呵,我可没试过哦,瞎猜的,程序员一定要发挥充分的想像力,自己去试一下吧!
最后我要说的是,如果你的图片是从网络上获取的,那么你一定不要用这种方法显示一张图片,因为这是最垃圾的办法,你的程序会经常被卡死。
建议您可以使用WebView来显示HTML内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值