Android程序如何在代码中改变图片原有的颜色-创新互联
最近一边找工作一边完善之前的项目。之前安卓初中级的项目是模仿酷狗音乐播放器的。下载一个apk文件,改后缀,解压,然后根据官方应用的布局,用得到的图片照着做出来。记得酷狗首页有好几种主要图标,解压后得到的白色加透明组合成的,但官方应用是换主题颜色会跟着改变,这回正好有空就网上找来方法跟着改。
为灯塔等地区用户提供了全套网页设计制作服务,及灯塔网站建设行业解决方案。主营业务为成都做网站、成都网站制作、灯塔网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!因为只是把白色改成别的颜色,所以不难。
package com.example.ex_tupian; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.ColorMatrix; import android.graphics.ColorMatrixColorFilter; import android.graphics.Matrix; import android.graphics.Paint; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; public class MainActivity extends Activity { private ImageView ma; private Bitmap bitmap, updateBitmap; private Canvas canvas; private Paint paint; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ma = (ImageView) findViewById(R.id.p_w_picpathView00); bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.d1); updateBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig()); canvas = new Canvas(updateBitmap); paint = new Paint(Paint.ANTI_ALIAS_FLAG);//抗锯齿的画笔 final ColorMatrix cm = new ColorMatrix(); paint.setColorFilter(new ColorMatrixColorFilter(cm)); paint.setColor(Color.BLACK); paint.setAntiAlias(true); final Matrix matrix = new Matrix(); canvas.drawBitmap(bitmap, matrix, paint); ma.setImageBitmap(updateBitmap); findViewById(R.id.button1).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub cm.set(new float[] { 160 / 128f, 0, 0, 0, 0,// 红色值 0, 32 / 128f, 0, 0, 0,// 绿色值 0, 0, 240 / 128f, 0, 0,// 蓝色值 0, 0, 0, 1, 0 // 透明度 }); paint.setColorFilter(new ColorMatrixColorFilter(cm)); canvas.drawBitmap(bitmap, matrix, paint); ma.setImageBitmap(updateBitmap); } }); } }
主要就是这个在设置颜色
new float[] { 160 / 128f, 0, 0, 0, 0,// 红色值
0, 32 / 128f, 0, 0, 0,// 绿色值
0, 0, 240 / 128f, 0, 0,// 蓝色值
0, 0, 0, 1, 0 // 透明度
}
这样设置起来的是紫色的,这只是很简单的转换,能达到效果,如果需要更多的内容,可以参考这些网址或者自己搜索。
http://blog.csdn.net/loongggdroid/article/details/18708911
http://www.cnblogs.com/leon19870907/articles/1978065.html
然后一个就是因为平时都直接用8位十六进制设置颜色,这边需要RGB,所以参考这个网址
http://blog.csdn.net/yanzi1225627/article/details/8581270
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章名称:Android程序如何在代码中改变图片原有的颜色-创新互联
本文来源:http://azwzsj.com/article/cojgde.html