纯色图制作APP代码
hallo,又是我鑫鑫,这次博客给大家带来纯色图制作APP代码,
在这之前要感谢之两位大佬的代码,这个程序是我通过结合两者代码,改编出来的。
1:Android之图片的颜色处理
2:android获取imageView图片并保存
在这里感谢这两位大佬
那么感谢也感谢了,直接上代码吧
MainActivity.java
package com.mycompany.myapp;import android.app.*;
import android.content.*;
import android.graphics.*;
import android.graphics.drawable.*;
import android.net.*;
import android.os.*;
import android.provider.*;
import android.view.*;
import android.view.View.*;
import android.widget.*;
import android.widget.SeekBar.*;
import java.io.*;import android.view.View.OnClickListener;public class MainActivity extends Activity implements OnSeekBarChangeListener{private SeekBar red_sb,green_sb,blue_sb;private ImageView imageView;private Canvas canvas;private Paint paint;private Bitmap baseBitmap,copyBitmap;private float red_vector,green_vector,blue_vector;Bitmap cacheBitmap = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);red_sb=(SeekBar) findViewById(R.id.red_seekbar);green_sb=(SeekBar) findViewById(R.id.green_seekbar);blue_sb=(SeekBar) findViewById(R.id.blue_seekbar);imageView=(ImageView) findViewById(R.id.im);red_sb.setOnSeekBarChangeListener(this);green_sb.setOnSeekBarChangeListener(this);blue_sb.setOnSeekBarChangeListener(this);}@Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {// TODO Auto-generated method stub}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stub}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stubint progress=seekBar.getProgress();float count=progress/50f;//使拖动条的取值为0f-2f,满足我们的取值要求switch (seekBar.getId()) {case R.id.red_seekbar:this.red_vector=count;break;case R.id.green_seekbar:this.green_vector=count;break;case R.id.blue_seekbar:this.blue_vector=count;break;default:break;}//Button SaveInfo =(Button) findViewById(R.id.save);imageView.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {new AlertDialog.Builder(MainActivity.this).setTitle("信息提示")//设置对话框标题.setMessage("你确定要保存该图片吗?\n\n保存路径:\nsdcard/鑫鑫工具箱/纯色图制作").setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {Toast.makeText(MainActivity.this, "请调整颜色", Toast.LENGTH_SHORT).show();}}).setPositiveButton("确定", new DialogInterface.OnClickListener() {//添加确定按钮@Overridepublic void onClick(DialogInterface dialog, int which) {//确定按钮的响应事件,点击事件没写,自己添加// TODO 自动生成的方法存根imageView.buildDrawingCache(true); imageView.buildDrawingCache(); Bitmap bitmap = imageView.getDrawingCache(); saveBitmapFile(bitmap);imageView.setDrawingCacheEnabled(false);Toast.makeText(MainActivity.this, "保存成功", Toast.LENGTH_SHORT).show();}}).show();//在按键响应事件中显示此对话框}});//主题代码baseBitmap=BitmapFactory.decodeResource(getResources(), R.drawable.Standard_background);copyBitmap=Bitmap.createBitmap(baseBitmap.getWidth(), baseBitmap.getHeight(), baseBitmap.getConfig());canvas=new Canvas(copyBitmap);Matrix matrix=new Matrix();paint=new Paint();//vector:取值范围(0-2)float[] colors=new float[]{red_vector,0,0,0,0,0,green_vector,0,0,0,0,0,blue_vector,0,0,0,0,0,1,0};paint.setColorFilter(new ColorMatrixColorFilter(colors));canvas.drawBitmap(baseBitmap, matrix, paint);imageView.setImageBitmap(copyBitmap);}public void saveBitmapFile(Bitmap bitmap){File temp = new File("/sdcard/鑫鑫工具箱/纯色图制作");//要保存文件先创建文件夹 if (!temp.exists()) {temp.mkdir();}//重复保存时,覆盖原同名图片File file=new File("/sdcard/鑫鑫工具箱/纯色图制作/成品.jpg");//将要保存图片的路径和图片名称// File file = new File("/sdcard/1delete/1.png");/延时较长try {BufferedOutputStream bos= new BufferedOutputStream(new FileOutputStream(file));bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos);bos.flush();bos.close();} catch (IOException e) {e.printStackTrace();}}/*public void deleteFile(View v){//点击按钮删除这个文件File file = new File("/sdcard/1spray/1.png");if(file.exists()){file.delete();}}///deleteFile*/
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:gravity="center"android:background="#FFFFFFFF"><LinearLayoutandroid:layout_height="100dp"android:layout_width="match_parent"android:orientation="vertical"android:gravity="center"><TextViewandroid:layout_height="wrap_content"android:textAppearance="?android:attr/textAppearanceLarge"android:layout_width="wrap_content"android:text="纯色图制作"android:textStyle="bold"/></LinearLayout><LinearLayoutandroid:layout_height="wrap_content"android:layout_width="match_parent"android:gravity="center"android:layout_marginBottom="10dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="R"android:gravity="center"/><SeekBarandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/red_seekbar"android:layout_weight="1.0"android:background="@drawable/Sliding_background"android:thumb="@drawable/Sliding_button_background"/></LinearLayout><LinearLayoutandroid:layout_height="wrap_content"android:layout_width="match_parent"android:gravity="center"android:layout_marginBottom="10dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="G"android:gravity="center"/><SeekBarandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/green_seekbar"android:background="@drawable/Sliding_background"android:thumb="@drawable/Sliding_button_background"/></LinearLayout><LinearLayoutandroid:layout_height="wrap_content"android:layout_width="match_parent"android:gravity="center"android:layout_marginBottom="10dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="B"android:gravity="center"/><SeekBarandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/blue_seekbar"android:background="@drawable/Sliding_background"android:thumb="@drawable/Sliding_button_background"/></LinearLayout><ImageViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/im"android:layout_weight="1.0"android:src="@drawable/Standard_background"/></LinearLayout>
对应资源文件
Sliding_button_background.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:width="10dp" android:height="10dp"><!--图形形状--><shape android:shape="oval"><!--图形内圈颜色--><solid android:color="#20a4f9" /><!--图形大小设置--><size android:height="13dp" android:width="13dp"/><!--外环设置--><stroke android:width="0dp" android:color="#ffffff"/></shape></item>
</selector>
Sliding_background.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"><item android:id="@android:id/background"><shape><corners android:radius="5dp"/><solid android:color="#ffffff"/></shape></item><item android:id="@android:id/secondaryProgress"><clip><shape><corners android:radius="5dp"/><solid android:color="#20a4f9"/></shape></clip></item><item android:id="@android:id/progress"><clip><shape><corners android:radius="5dp"/><solid android:color="#20a4f9" /></shape></clip></item>
</layer-list>
对应图片资源:Standard_background.png
由于图片是白色的,有可能会背景色重叠,但不影响使用。
当然最后不要忘记添加保存权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
整篇文章到这就结束了,感谢各位的观看。
如果程序有什么bug还行,反馈给我。
留下邮箱,直接给源码,或者克隆源码
各位再见。 —by 鑫鑫
纯色图制作APP代码相关推荐
- netbeans 添加gif图片_GIF动图制作app下载|GIF动图制作安卓版 v3.9.2 官方免费版
GIF动图制作APP是一款可以让您使用起来非常顺手的GIF动态图片制作软件,用户只需要根据app提供的功能,通过手机摄像头捕捉亲朋好友.家庭宠物等生动.有趣的瞬间,生成动画GIF图片珍藏起来!然后将视 ...
- android图形编辑6,图片编辑P图制作app
图片编辑P图制作app是一个非常实用的手机修图软件,软件内置了完美的滤镜,支持一键美化,让你摆脱拍照一分钟,修图两小时尴尬情况,让即时分享变成可能,简是一种追求. 软件介绍 极简操作:修图.拼图.加素 ...
- 哪个相机可以拍gif动图_你见过最搞笑的gif是什么?那些搞笑的动图都是用什么gif制作app制作的?...
话说每天上网冲浪的快乐源泉就是一些沙雕网友的沙雕动图了,有时候躺在床上刷微博.贴吧,真的是笑得全小区的灯都亮了,这种快乐我不能一个人独享,今天就来跟小伙伴分享我收藏的一些让人笑得满地找头的gif动图, ...
- 使用PS快速制作App logo图
使用PS快速制作App logo图,全程大约一分钟. 应用市场要求logo图尺寸最小为256256,最大不超过512512,必须为圆角矩形.图片格式最好保存为.png和jpg 1.新建512*512像 ...
- 计算机logo在线设计,手机上在线制作免费logo图标的APP—Logo Foundry
一个不输电脑上设计精美logo的手机APP,也是业界众多科技媒体报道的手机上在线制作免费logo图标的APP-Logo Foundry.如果你正需要一款可以在手机上轻松制作免费logo图表的软件,那么 ...
- android 照片拼接长图_长图拼接app下载 长图拼接制作 for Android v2.6.1 安卓版 下载-脚本之家...
长图拼接制作app是一款操作很方便的长截图拼接软件.长图拼接app能够支持对截图进行裁剪和编辑,长图拼接制作app还有多种拼接模板和框架供大家选择,有需要的用户赶快下载体验吧! 软件介绍 长图拼接制作 ...
- 小视频app源码,邻接矩阵实现图的相关代码
小视频app源码,邻接矩阵实现图的相关代码 /*Author:Albert Tesla WizardTime:2020/10/26 20:22 */#include<bits/stdc++.h& ...
- 直接复制php代码制作app,一套免费无代码在线制作APP工具,将APP打包带走
线上营销的火爆离不开人们对APP的依赖,许多小商户已经从很早的时候就开始萌芽出制作APP来为实体店增加生意的想法,然后开发APP对中型企业都是一件成本极高的事情,即便小商户请外包团队需求降到最低,也会 ...
- php制作图片轮播_JavaScript_jQuery制作简洁的图片轮播效果,演示图:核心代码:$ - phpStudy...
jQuery制作简洁的图片轮播效果 演示图: 核心代码: $(document).ready(function(){ var $iBox = $('.imgBox'), $iNum = $('.img ...
- wps如何自己制作流程图_自己如何制作APP软件
自己能制作APP软件吗? 完全可以自己制作. 如果自己会编程的,能力足够,可以一个人开发一些简单的APP,但复杂的没有几个人的团队你一个人根本忙不过来,需要的时间也很长. 不会编程的,可以找在线生成平 ...
最新文章
- 分享一张SQLSERVER执行流程的图片
- 十七、字符类 GPIOS
- 分布式是什么,集群又是什么呢
- 【Tools】Tools博客汇总
- CSS3 Flex布局弹性容器的属性
- 基于范围的for循环
- Looper中的消息队列处理机制
- 字符串怎样实例化成对象
- android中得到屏幕的高宽(像素)
- 如何打开浏览器的TLS 1.1 TLS 1.2支持
- EndNote毕业论文参考文献格式输出
- 利用K8S技术栈打造个人私有云(连载之:私有云客户端打造)
- 跳转微信功能(学习总结)
- matlab 图片中花体字母,banal(26字母花体英文可复制)
- Unity游戏开发——向量运算(点乘和叉乘)
- git merge覆盖当前分支
- vue-cli脚本架安装出错处理
- 海康威视工业相机MV-CE060-10UC使用指北
- 解决win7开机黑屏方法
- C++寻找100以内可被17整除的最大自然数
热门文章
- linux压缩超过4g的文件吗,使用tar压缩文件,不能超过4G,有什么办法解决-
- 悬赏任务源码系统带app小程序源码基于php开源版
- 微信公众号:服务号、企业订阅号、个人订阅号的差异对比
- 解决office 2003安装了office 2007兼容包还是打不开office 2007的文件
- 利用matlab设计矩形脉冲信号,信号课程设计
- linux查看ubuntu版本命令,检查Ubuntu版本号的三种方法:从终端和设置中检查及使用Neofetch...
- 基于arduino的WiFi无线传输
- python将列表元素全部小写_python实现创建新列表和新字典,并使元素及键值对全部变成小写...
- KEGG Brite 数据库
- 如何打开.chm文件