android bitmap压缩怎么生成bitmap

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
Bitmap bitmap=BitmapFactory.decodeFile(filePath);如果图片过大,可能导致Bitmap对象装不下图片解决办法:String filePath="c:/01.jpg"; Bitmap bitmap=BitmapFactory.decodeFile(filePath,getBitmapOption(2)); //将图片的长和宽缩小味原来的1/2private Options getBitmapOption(int inSampleSize){&&& &&& System.gc();&&& &&& BitmapFactory.Options options = new BitmapFactory.Options();&&& &&& options.inPurgeable =&&&&&&& options.inSampleSize = inSampleS&&&&&&&}Bitmap对象保存味图片文件public void saveBitmapFile(Bitmap bitmap){&&&&&&&&&&& File file=new File("/mnt/sdcard/pic/01.jpg");//将要保存图片的路径&&&& & & && try {&&& &&&&&&&&&&& &&& BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));&&& &&& &&&&&&&&&&& pressFormat.JPEG, 100, bos);&&& &&& &&& &&& &&& bos.flush();&&& &&& &&& &&& &&& bos.close();&&& &&& &&& } catch (IOException e) {&&& &&& &&& &&& &&& e.printStackTrace();&&& &&& &&& }}
阅读(40288)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'图片文件和Bitmap之间的转换',
blogAbstract:'图片文件转为Bitmap对象String filePath=\"c:/01.jpg\";Bitmap bitmap=BitmapFactory.decodeFile(filePath);如果图片过大,可能导致Bitmap对象装不下图片解决办法:String filePath=\"c:/01.jpg\"; Bitmap bitmap=BitmapFactory.decodeFile(filePath,getBitmapOption(2)); //将图片的长和宽缩小味原来的1/2',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:2,
publishTime:0,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:2,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}本帖子已过去太久远了,不再提供回复功能。博客访问: 461044
博文数量: 188
博客积分: 1992
博客等级: 上尉
技术积分: 1765
注册时间:
重庆乐潮信息技术有限公司
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: Android平台
public static Bitmap getRoundedCornerBitmap(Bitmap bitmap) {
&&&&&&&&Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);
&&&&&&&&Canvas canvas = new Canvas(output);
&&&&&&&&final Paint paint = new Paint();
&&&&&&&&//保证是方形,并且从中心画
&&&&&&&&int width = bitmap.getWidth();
&&&&&&&&int height = bitmap.getHeight();
&&&&&&&&int w;
&&&&&&&&int deltaX = 0;
&&&&&&&&int deltaY = 0;
&&&&&&&&if (width <= height) {
&&&&&&&&&&&&w = width;
&&&&&&&&&&&&deltaY = height - w;
&&&&&&&&} else {
&&&&&&&&&&&&w = height;
&&&&&&&&&&&&deltaX = width - w;
&&&&&&&&final Rect rect = new Rect(deltaX, deltaY, w, w);
&&&&&&&&final RectF rectF = new RectF(rect);
&&&&&&&&paint.setAntiAlias(true);
&&&&&&&&canvas.drawARGB(0, 0, 0, 0);
&&&&&&&&//圆形,所有只用一个
&&&&&&&&int radius = (int) (Math.sqrt(w * w * 2.0d) / 2);
&&&&&&&&canvas.drawRoundRect(rectF, radius, radius, paint);
&&&&&&&&paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
&&&&&&&&canvas.drawBitmap(bitmap, rect, rect, paint);
&&&&&&&&return output;
阅读(7339) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。Android生成桌面快捷方式的几种方法:
//------------以下为动态替换桌面应用Icon的一种解决方案-------------------
// 1.获取本地目录图片的B根据Bitmap绘制新的canvas画布Jicanvas画布上添加文字信息;最终获得一个带有canvas的Bitmap:NewIcon
public Bitmap getBitmap() {
//获取本地bitmap
Bitmap bitmap = BitmapFactory.decodeFile("/scard/1.png");
Bitmap bitmap2 = BitmapFactory.decodeFile("/scard/2.png");
//根据Bitmap绘制新的Canvas画布
Bitmap NewIcon = Bitmap.createBitmap(android.R.dimen.app_icon_size, android.R.dimen.app_icon_size, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(NewIcon);
int iconSize = getResources().getDimensionPixelSize(android.R.dimen.app_icon_size);
Paint iconPaint = new Paint();
Rect src = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
Rect dst = new Rect(0, 0, iconSize, iconSize);
canvas.drawBitmap(bitmap, src, dst, iconPaint);
//w往canvas 画布上添加文字信息
Paint StrPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG);
StrPaint.setColor(Color.RED);
StrPaint.setTextSize(20f);
StrPaint.setTypeface(Typeface.DEFAULT_BOLD);
canvas.drawText("正面", iconSize - 45, 20, StrPaint);
//最终获得一个带有canvas的Bitmap:NewIcon
return NewI
//2.使用新的Bitmap在Home界面创建制定应用的启动项
public void setHomeIcon() {
Intent shortcutIntent = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT");
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "MaginIcon");
Intent mainIntent = new Intent(Intent.ACTION_MAIN);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
mainIntent.setClass(this, MainActivityBak.class);
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, mainIntent);
sendBroadcast(shortcutIntent);
public void setIcons() {
//创建新的启动项
Intent shortcutIntent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "MagicsIcon");
//设置不可以创建多个启动项
shortcutIntent.putExtra("duplicate", false);
//创建Home界面启动项
Intent mainIntent = new Intent(Intent.ACTION_MAIN);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
mainIntent.setClass(this, MainActivityBak.class);
PackageManager pkgMag = getPackageManager();
Intent queryIntent = new Intent(Intent.ACTION_MAIN, null);
queryIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List&ResolveInfo& list = pkgMag.queryIntentActivities(queryIntent,PackageManager.GET_ACTIVITIES);
for(int i = 0;i & list.size();i++){
ResolveInfo info = list.get(i);
if(info.activityInfo.packageName.equals(pk)){
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, mainIntent);
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, getBitmap());
sendBroadcast(shortcutIntent);
//------------以下为动态替换桌面应用Icon的一种解决方案-------------------
//------------以下为生成桌面widget的几种方法,本质一样----------------
private void shortcutAdd(String name, int number) {
// Intent to be send, when shortcut is pressed by user ("launched")
Intent shortcutIntent = new Intent(getApplicationContext(), MainActivityBak.class);
//shortcutIntent.setAction(SyncStateContract.Constants.ACCOUNT_NAME);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// Create bitmap with number in it -& very default. You probably want to give it a more stylish look
Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
Paint paint = new Paint();
paint.setColor(0xFFFF0000); // gray
paint.setTextAlign(Paint.Align.CENTER);
paint.setTextSize(50);
new Canvas(bitmap).drawText("" + number, 50, 50, paint);
((ImageView) findViewById(R.id.icon)).setImageBitmap(bitmap);
// Decorate the shortcut
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bitmap);
// Inform launcher to create shortcut
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(addIntent);
private void shortcutDel(String name) {
// Intent to be send, when shortcut is pressed by user ("launched")
Intent shortcutIntent = new Intent(getApplicationContext(), MainActivityBak.class);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// Decorate the shortcut
Intent delIntent = new Intent();
delIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
delIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
// Inform launcher to remove shortcut
delIntent.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(delIntent);
public void addShortCut() {
Intent myLauncherIntent = new Intent(this, MainActivityBak.class);
myLauncherIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, myLauncherIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "MagicIcon");
intent.putExtra
Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext
getApplicationContext(),
R.mipmap.ic_launcher
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(intent);
阅读(...) 评论()}

我要回帖

更多关于 android bitmap 缩放 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信