libgdx中异步从网络加载图片
使用libgdx从网络中下载图片,并转换为texture画出来。其实并不复杂,只需要四步就可以了。
1、从网络中读取图片数据到byte[]
2、使用byte[]生成一个pixmap
3、将pixmap画到一张边长是2的N次幂的texture上
4、从texture构造textureRegion
使用libgdx从网络中下载图片,并转换为texture画出来。其实并不复杂,只需要四步就可以了。
1、从网络中读取图片数据到byte[]
2、使用byte[]生成一个pixmap
3、将pixmap画到一张边长是2的N次幂的texture上
4、从texture构造textureRegion
使用标准http协议实现,(HttpUrlConneciton),不使用第三方包
一、对于已安装应用,只需要getPackageManager().getInstalledPacked(int flags)即可得到PackageInfo.
Resources res=getResources(); AssetManager asm=new AssetManager();//隐藏api asm.addAssetPath(String apkfilePath);//隐藏api res=new Resources(asm,res.getDisplayMetrics(),res.getConfiguration());//隐藏api
Class asm_cls = Class.forName("android.content.res.AssetManager");
Object asm_obj = asm_cls.getDeclaredConstructor((Class[]) null).newInstance((Class[]) null);
asm_obj.getClass() .getDeclaredMethod("addAssetPath", new Class[] { String.class })
.invoke(asm_obj, new Object[] { filePath });
Resources res=getResources();
res = Resources.class.getDeclaredConstructor(
new Class[] { asm_obj.getClass(),
res.getDisplayMetrics().getClass(),
res.getConfiguration().getClass() })
.newInstance(new Object[] { asm_obj,
res.getDisplayMetrics(),
res.getConfiguration() });
return res;
方法一:
View view= getWindow().getDecorView();
Bitmap bmp = Bitmap.createBitmap(480, 800, Bitmap.Config.ARGB_8888);
view.draw(new Canvas(b));
bmp就是截取的图片了,可通过bmp.compress(CompressFormat.PNG, 100, new FileOutputStream(file));把图片保存为文件。
方法二:
getWindow().getDecorView().setDrawingCacheEnabled(true);
bmp=getWindow().getDecorView().getDrawingCache();
但这样得到的图片是包含状态栏和标题栏的,如果想把状态栏和标题栏去掉,可把得到的图片顶部一部分剪裁掉。
1、得到状态栏高度
Rect rect = new Rect();
view.getWindowVisibleDisplayFrame(rect);
int statusBarHeight = rect.top;
System.out.println(“状态栏高度:” + statusBarHeight);
2、得到标题栏高度
int wintop = getWindow().findViewById(android.R.id.content).getTop();
int titleBarHeight = wintop – statusBarHeight;
System.out.println(“标题栏高度:” + titleBarHeight);
注:这样得到的截图是不会包含dialog和popupwindow的,你必须单独得到popupwindow的截图,然后再和背景截图合到一起。
另外,截图的相关代码是不能放到oncreate中的,因为这时候getDectorView()得到的是null
把两个bitmap合到一起的方法很简单。
Bitmap bmpall=Biatmap.createBitmap(width,height,Config.ARGB_8888);
Canvas canvas=new Canvas(bmpall);
canvas.drawBitmap(bmp1,x,y,paint);
canvas.drawBitmap(bmp2,x,y,paint);
得到的bmpall就是合在一起的图片了。
ps:按理说也getWindow.findViewById(android.R.id.content)得到的view就是不包含状态栏和标题栏的view,但这个我还没有试过。
很多php主机都禁用了mail()函数,所以一般找一个smtp的插件来完成发送邮件的工作。
wp-mail-smtp这个插件不错,但可能很多人都遇到过 could not connect to SMTP host的错误。
这个问题纠结很久,网上到处找,遇到这个问题的人也很多,后来终于找到了一篇文章介绍的解决办法。
之前写的 android上传文件的同时并传递参数 的文章
今天有位朋友要php端的代码,现在帖出来吧。
其实如果你也可以直接用我写好的一个 http://veikr.com/myupload/upload.php 来测试
刚才去看了下,有人用过,传了4个文件在里面。
启动xampp中的apache
提示busy 80 . apache started.
事实上并没有启动。
然后去apache/conf/httpd.conf文件里改了端口,可仍然是这样的提示
在网上找了好久
都说端口被占用换端口 删注册表啥的 问题都没有解决
后来终于摸索出了解决办法。
因为我之前一直用的好好的,突然不行的
后来就回想这期间干了什么
后来终于发现了问题,是系统环境变量的问题
之前装了crul,并加到了环境变量中
去掉就行了。
(即使换了端口,xampp里显示的仍是80端口)
改环境变量很简单吧
我的电脑右键-属性-高级-环境变量
下面的系统变量部分,更改path值就行了。
这是个比较冷门的东西,简单的说就是当你在拨号盘输入*#*#xxxx#*#*的时候接到通知,然后可以进行相关操作。
首先能想到的应用就是私密类程序。比如你的程序是没有图标的,用户输入这些暗号后可以进行一些操作,或者进入软件界面。
原理很简单,其实也是一个broastcastReceiver而已,只是action并没有放到Intent的常量中,所以很少有人知道。