今天调试了一个慕课网上的小程序,功能是通过HSI 来调整图像的色调,饱和度,亮度。一开始虚拟机出现App has stopped  后面经过调试 app成功运行 出现Bug的原因是没有创建
setContentView(R.layout.primary_color);

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.android.meituxiuxiu"> 
package com.androidzhangting.meituxiuxiu;import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.Paint;public class ImageHelper {public static Bitmap handleImageEffect(Bitmap bm,float hue,float saturation,float lum){Bitmap bmp=Bitmap.createBitmap(bm.getWidth(),bm.getHeight(),Bitmap.Config.ARGB_8888);Canvas canvas=new Canvas(bmp);Paint paint=new Paint(Paint.ANTI_ALIAS_FLAG);ColorMatrix hueMatrix=new ColorMatrix();hueMatrix.setRotate(0,hue);hueMatrix.setRotate(1,hue);hueMatrix.setRotate(2,hue);ColorMatrix  saturationMatrix=new ColorMatrix();saturationMatrix.setSaturation(saturation);ColorMatrix lumMatrix=new ColorMatrix();lumMatrix.setScale(lum,lum,lum,1);ColorMatrix imageMatrix=new ColorMatrix();imageMatrix.postConcat(hueMatrix);imageMatrix.postConcat(saturationMatrix);imageMatrix.postConcat(lumMatrix);paint.setColorFilter(new ColorMatrixColorFilter(imageMatrix));canvas.drawBitmap(bm,0,0,paint);return bmp;}
}

package com.androidzhangting.meituxiuxiu;import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.widget.ImageView;
import android.widget.SeekBar;public class PrimaryColor extends Activity implements SeekBar.OnSeekBarChangeListener {private ImageView mimageView;private SeekBar mSeekbarHue, mSeekbarSaturation, mSeekbarLum;private static int MAX_VALUE = 255;private static int MID_VALUE = 127;private float mHue, mSaturation, mLum;private Bitmap bitmap;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.primary_color);bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pubu);mimageView = (ImageView) findViewById(R.id.imageview);mSeekbarHue = (SeekBar) findViewById(R.id.seekbarHue);mSeekbarSaturation = (SeekBar) findViewById(R.id.seekbarSaturation);mSeekbarLum = (SeekBar) findViewById(R.id.seekbarLum);mSeekbarHue.setOnSeekBarChangeListener(this);mSeekbarSaturation.setOnSeekBarChangeListener(this);mSeekbarLum.setOnSeekBarChangeListener(this);mSeekbarHue.setMax(MAX_VALUE);mSeekbarSaturation.setMax(MAX_VALUE);mSeekbarLum.setMax(MAX_VALUE);mSeekbarHue.setProgress(MID_VALUE);mSeekbarSaturation.setProgress(MID_VALUE);mSeekbarLum.setProgress(MID_VALUE);mimageView.setImageBitmap(bitmap);}@Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {switch (seekBar.getId()) {case R.id.seekbarHue:mHue = (progress - MID_VALUE) * 1.0f / MID_VALUE * 180;break;case R.id.seekbarSaturation:mSaturation = progress * 1.0f / MID_VALUE;break;case R.id.seekbarLum:mLum = progress * 1.0f / MID_VALUE;break;}mimageView.setImageBitmap(ImageHelper.handleImageEffect(bitmap, mHue, mSaturation, mLum));}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_horizontal"android:orientation="vertical"android:paddingBottom="16dp"android:paddingTop="16dp"android:paddingRight="16dp"android:paddingLeft="16dp"tools:context=".MeiTuXiuXiuActivity"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginBottom="40dp"android:text="美图秀秀"android:textSize="40sp"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintHorizontal_bias="0.502"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintVertical_bias="0.146" /><Buttonandroid:id="@+id/buttonhue"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="PrimaryColor"android:onClick="btnPrimaryColor"tools:layout_editor_absoluteX="148dp"tools:layout_editor_absoluteY="184dp" /><Buttonandroid:id="@+id/buttonsaturation"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="NewButton"tools:layout_editor_absoluteX="148dp"tools:layout_editor_absoluteY="280dp" /><Buttonandroid:id="@+id/buttonlum"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="NewButton"tools:layout_editor_absoluteX="128dp"tools:layout_editor_absoluteY="382dp" /></LinearLayout>

<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MeiTuXiuXiuActivity">

package com.androidzhangting.meituxiuxiu;import android.app.Activity;
import android.content.Intent;import android.os.Bundle;
import android.view.View;public class MeiTuXiuXiuActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_mei_tu_xiu_xiu);}public  void btnPrimaryColor(View view){startActivity(new Intent(this,PrimaryColor.class));}}

<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".PrimaryColor"/> </application></manifest>

安卓开发小程序之美图秀秀相关推荐

  1. 微信小程序版“美图秀秀”源码

    使用代码 下载并安装微信开发者工具,使用微信号扫码登录开发者工具. 打开微信开发者工具,点击"小程序项目"按钮,输入小程序 AppID,项目目录选择下载的代码目录,点击确定创建小程 ...

  2. iOS开发——打造自己的“美图秀秀”

    iOS开发--绘图与滤镜 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介绍:Quart ...

  3. Android -- 小功能 仿美图秀秀(美颜相机)马赛克功能

    前言: 之前公司有需求,需要对图片进行编辑,功能参照美图秀秀(或者美颜相机)的功能(带手指触动预览图功能.带放大缩小实施涂鸦功能),上网找了一堆源码,发现没有类似的,只能自己写 实现思路: 见源码,下 ...

  4. uniapp开发小程序引入折线图

    在网上找了好多说的都不是太清楚,我这边直接上代码演示,也方便以后自己能用到 下面两个标签+js然后引入一个js文件就可以实现,js文件我的资源里面有大家可以去下载,文件 <u-calendar ...

  5. 小程序轮播图高度适配

    小程序轮播图适配 在开发小程序轮播图时,我遇到一下问题:小程序轮播图的导航栏总是不能放在正确的位置上,思考再三,我发现问题的原因是:当我们设置image的mode="widthFix&quo ...

  6. iOS开发系列--打造自己的“美图秀秀”

    --绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介绍:Quartz ...

  7. iOS开发系列–打造自己的“美图秀秀”

    原文出处: KenshinCui    概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介 ...

  8. iOS开发系列--打造自己的ldquo;美图秀秀rdquo;

    --绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介绍:Quartz ...

  9. Android+JNI+OpenGL开发自己的美图秀秀

    https://blog.csdn.net/oshunz/article/details/50537631 Android+JNI+OpenGL开发自己的美图秀秀 2016年01月18日 16:39: ...

  10. iOS:iOS开发系列–打造自己的“美图秀秀”(下)

    来源: KenshinCui 链接:http://www.cnblogs.com/kenshincui/p/3959951.html 运行效果: 其他图形上下文 前面我们也说过,Quartz 2D的图 ...

最新文章

  1. python怎么输出字符串_python出输出字符串方式:
  2. 如何编写无法维护的代码_编写可维护的前端代码
  3. Java初学者习题20道(转)
  4. frac函数_20个能够有效提高 Pandas数据分析效率的常用函数,附带解释和例子
  5. hdu1160 dp
  6. unity创建和销毁对象_如何创建和销毁对象
  7. java练习(数组工具类的封装)[目前写过最长的代码,虽然不难]
  8. Ubuntu16.04下制作deb包的方法详解
  9. 两台电脑怎么共享_怎么在电脑上创建共享文件(必须是在同一个网段)
  10. 自动化测试--实现一套完全解耦的简单测试框架
  11. 解锁新招:冷冻手机窃密数据
  12. linux 服务状态命令,Linux 查看服务列表,查看服务状态
  13. pcn变更流程图_超经典的工程变更流程图
  14. python中几种括号的用法()、[]、{} 举例说明
  15. NLP入门学习(一):搜狗新闻语料库的获取与预处理
  16. 【CCNA3】思科基本命令汇总+网线线序
  17. html中怎么写艺术字,用CSS设计艺术字
  18. MOSES统计机器翻译系统实验过程
  19. 单个Java文件打成可执行JAR包
  20. 论坛mysql cpu100_解决 MYSQL CPU 占用 100% 的经验总结

热门文章

  1. WebService 入门教程(Java)
  2. 国内29家视觉企业及最新动态一览
  3. SQL 常用脚本大全
  4. ORK FrameWork - 自定义存储数据ISaveData接口
  5. stm32f4串口烧录[flymcu]
  6. 遗传算法(Python)
  7. 高程拟合的matlab代码,利用MATLAB结合C语言实现GPS高程二次曲面拟合
  8. 人脸识别模块关于人脸库大小
  9. Python拓展应用——Selenium代刷问卷星问卷,升级版。
  10. 光伏补贴双轨制仍将延续