当前位置: 编程技术>移动开发
本页文章导读:
▪DownloadProvider为什么不可用 DownloadProvider为何不可用?
今天做一个下载的
不用android自带的DownloadProvider。
原因是DownloadProvider目前在非系统的应用程序中不可用,而且在可预见的未来这一情况也不会改变,而且更加不幸.........
▪ 查看默许输入法信息 查看默认输入法信息
final PackageManager pm = getPackageManager(); List<ResolveInfo> services = pm.queryIntentServices( new Intent(InputMethod.SERVICE_INTERFACE), PackageMana.........
▪ 兑现图片的拖拽效果 实现图片的拖拽效果
最近项目里有个模块需要实现拖拽,分析了,发现在不同层内拖拽效果很难实现,要么就是效果体验性很一般。
好不容易用了障眼法才解决,呵呵,分享下。
package .........
[1]DownloadProvider为什么不可用
来源: 互联网 发布时间: 2014-02-18
DownloadProvider为何不可用?
今天做一个下载的
不用android自带的DownloadProvider。
原因是DownloadProvider目前在非系统的应用程序中不可用,而且在可预见的未来这一情况也不会改变,而且更加不幸的是,当前的DownloadProvier使用了私有的APIs以阻止SDK上的重编译,也就是说你不能使用它在你自己的应用程序里。
应用了DownloadProvider的系统的应用程序有Browser,Gmail,Market,和System Updater.
[2] 查看默许输入法信息
来源: 互联网 发布时间: 2014-02-18
查看默认输入法信息
final PackageManager pm = getPackageManager();
List<ResolveInfo> services = pm.queryIntentServices(
new Intent(InputMethod.SERVICE_INTERFACE),
PackageManager.GET_META_DATA);
for(int i=0;i<services.size();i++)
{
System.out.println("查看="+services.get(i));
}
[3] 兑现图片的拖拽效果
来源: 互联网 发布时间: 2014-02-18
实现图片的拖拽效果
图片可以随意移动的吧。
最近项目里有个模块需要实现拖拽,分析了,发现在不同层内拖拽效果很难实现,要么就是效果体验性很一般。
好不容易用了障眼法才解决,呵呵,分享下。
package com.nico; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.PixelFormat; import android.os.Bundle; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.view.View.OnTouchListener; import android.widget.ImageView; public class DragActivity extends Activity { ImageView imgview; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final ImageView img = (ImageView) findViewById(R.id.img); final WindowManager wm = this.getWindowManager(); final WindowManager.LayoutParams wlayout = new WindowManager.LayoutParams(); wlayout.gravity = Gravity.TOP; wlayout.x = 0; wlayout.y = 0; wlayout.height = WindowManager.LayoutParams.WRAP_CONTENT; wlayout.width = WindowManager.LayoutParams.WRAP_CONTENT; wlayout.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN; wlayout.format = PixelFormat.TRANSLUCENT; wlayout.windowAnimations = 0; img.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { int act = event.getAction(); int rawx = (int) event.getRawX()-v.getRight()-v.getWidth(); int rawy = (int) event.getRawY(); wlayout.x = rawx; wlayout.y = rawy; switch (act) { case MotionEvent.ACTION_DOWN: ImageView newimg = new ImageView(DragActivity.this); img.setDrawingCacheEnabled(true); Bitmap bt = img.getDrawingCache(); newimg.setImageBitmap(bt); imgview = newimg; wm.addView(imgview, wlayout); imgview.setVisibility(View.VISIBLE); break; case MotionEvent.ACTION_MOVE: // wlayout.x = rawx; // wlayout.y = rawy; wm.updateViewLayout(imgview, wlayout); break; case MotionEvent.ACTION_UP: wm.removeView(imgview); if (imgview != null) { imgview.destroyDrawingCache(); imgview = null; } break; } return true; } }); } }
1 楼
antoon.nee
2010-11-29
楼主,你好。
这里为什么要用按位或运算呢?
wlayout.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
还有图片只能在竖直方向移动,水平方向为什么不能呢?
这里为什么要用按位或运算呢?
wlayout.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
还有图片只能在竖直方向移动,水平方向为什么不能呢?
2 楼
hellorheaven
2010-12-06
antoon.nee 写道
楼主,你好。
这里为什么要用按位或运算呢?
wlayout.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
还有图片只能在竖直方向移动,水平方向为什么不能呢?
这里为什么要用按位或运算呢?
wlayout.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
还有图片只能在竖直方向移动,水平方向为什么不能呢?
图片可以随意移动的吧。
最新技术文章: