转载:http://blog.csdn.net/u010850027/article/details/48009461

经常玩儿App的小伙伴都知道,APP上面有很多按钮都是圆角的,圆形给人感觉饱满,富有张力,不知道设计圆角按钮的小伙伴是不是和小编有着相同的想法`(*∩_∩*)′,听小编公司开发IOS的小伙伴说,他们里面直接有圆角的button,但是对于开发Android的小伙伴就不一样了,里面没有直接的圆角button可以供我们使用,在xml里面布局一个button,还不是圆角的,怎么办nie,方法总比困难多,我们成长的机会又来了,最近在小编的项目中,需要用到圆角的button,还需要用到圆角的头像,经过半天捣鼓,终于是圆角的啦,开心ing,效果图如下,但是效果图展示的用户中心是一张图片,不是用imageview。今天这篇博文,小编就来简单的介绍一下如何敲出圆角的Button以及圆角的头像,小编先来介绍如何敲出圆角的头像,效果图如下所示:

今天这篇博文,小编做了一个关于如何制作圆角的一个Android小demo,希望可以帮助到有需要的小伙伴,首先,新建一个Android项目,在drawable_xhdpi这个文件下面,新建一个Android xml文件,取名为fillet,如下图所示:

接着第二步,我们开始编写fillet里面的xml,代码如下所示:

[html] view plaincopyprint?
  1. <span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?>
  2. <shape
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. android:shape="rectangle">
  5. <!-- 填充的颜色 -->
  6. <solid android:color="#4392F9" />
  7. <!-- 设置按钮的四个角为弧形 -->
  8. <!-- android:radius 弧形的半径 -->
  9. <corners android:radius="5dip" />
  10. <!-- padding:Button里面的文字与Button边界的间隔 -->
  11. <padding
  12. android:left="10dp"
  13. android:top="10dp"
  14. android:right="10dp"
  15. android:bottom="10dp" />
  16. </shape> </span>

第三步,编写layout里面的文件activity_main.xml,代码如下所示:

[html] view plaincopyprint?
  1. <span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. >
  7. <!--等一个故事的布局,写着玩儿的`(*∩_∩*)′ -->
  8. <TextView
  9. android:layout_width="fill_parent"
  10. android:layout_height="wrap_content"
  11. android:text="等一个故事"/>
  12. <!--   圆角button的布局 -->
  13. <Button
  14. android:id="@+id/filletButton"
  15. android:layout_gravity="center"
  16. android:text="圆角按钮 "
  17. android:textColor="#FFFFFF"
  18. android:layout_width="wrap_content"
  19. android:layout_height="wrap_content"
  20. android:background="@drawable/fillet"/>
  21. </LinearLayout> </span>

第四步,编写values文件下styles.xml的内容,具体代码如下所示:

[html] view plaincopyprint?
  1. <span style="font-size:18px;"><resources>
  2. <!--
  3. Base application theme, dependent on API level. This theme is replaced
  4. by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
  5. -->
  6. <style name="AppBaseTheme" parent="android:Theme.Light">
  7. <!--
  8. Theme customizations available in newer API levels can go in
  9. res/values-vXX/styles.xml, while customizations related to
  10. backward-compatibility can go here.
  11. -->
  12. </style>
  13. <!-- Application theme. -->
  14. <style name="AppTheme" parent="AppBaseTheme">
  15. <!-- All customizations that are NOT specific to a particular API-level can go here. -->
  16. </style>
  17. <string name="action_settings">Settings</string>
  18. </resources>
  19. </span>

第五步,编写FillButtonActivity.java类里面的内容,代码如下所示:

[java] view plaincopyprint?
  1. <span style="font-size:18px;">package com.example.filletbutton;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.view.View.OnClickListener;
  6. import android.widget.Button;
  7. import android.widget.Toast;
  8. public class FilletButtonActivity extends Activity {
  9. Button FilletButton;
  10. @Override
  11. public void onCreate(Bundle savedInstanceState) {
  12. super.onCreate(savedInstanceState);
  13. setContentView(R.layout.activity_main);
  14. FilletButton=(Button)findViewById(R.id.filletButton);
  15. //使用匿名类注册Button事件
  16. FilletButton.setOnClickListener(new OnClickListener()
  17. {
  18. public void onClick(View v)
  19. {
  20. Toast.makeText(FilletButtonActivity.this, "你点击了圆角按钮",Toast.LENGTH_LONG).show();
  21. }
  22. });
  23. }
  24. }
  25. </span>

最后我们来看一下运行的效果,如下图所示:


        介绍完如何敲出圆角的Button之后,小编接着像小伙伴们介绍一下,如何敲出圆角的头像,首先,第一步,我们来编写xml里面的布局代码,具体代码如下所示:

[html] view plaincopyprint?
  1. <span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:tools="http://schemas.android.com/tools"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. android:orientation="vertical"
  7. tools:context=".TestActivity">
  8. <FrameLayout
  9. android:layout_width="match_parent"
  10. android:layout_height="135dp"
  11. android:background="@drawable/us">
  12. <FrameLayout
  13. android:layout_width="match_parent"
  14. android:layout_height="44dp">
  15. <ImageButton
  16. android:id="@+id/about_us_back"
  17. android:layout_width="14dp"
  18. android:layout_height="25.5dp"
  19. android:layout_gravity="center_vertical"
  20. android:layout_marginLeft="10dp"
  21. android:background="@drawable/back" />
  22. <!-- 关于我们的布局 -->
  23. <TextView
  24. android:layout_width="wrap_content"
  25. android:layout_height="wrap_content"
  26. android:layout_gravity="center"
  27. android:text="关于我们"
  28. android:textColor="#fff"
  29. android:textSize="19sp" />
  30. </FrameLayout>
  31. <ImageView
  32. android:id="@+id/imageView2"
  33. android:layout_width="70dp"
  34. android:layout_height="70dp"
  35. android:layout_marginTop="8dp"
  36. android:layout_gravity="center"
  37. android:layout_alignParentTop="true"
  38. android:layout_centerHorizontal="true"
  39. android:src="@drawable/my" />
  40. <!-- 用户昵称,无忧心情的布局 -->
  41. <TextView
  42. android:layout_width="wrap_content"
  43. android:layout_height="wrap_content"
  44. android:layout_gravity="center_horizontal|bottom"
  45. android:layout_marginBottom="5dp"
  46. android:textColor="#FFFFFF"
  47. android:text="无忧心情" />
  48. </FrameLayout>
  49. </LinearLayout>
  50. </span>

接着,我们来编写java类里面的代码,代码如下所示:

[java] view plaincopyprint?
  1. <span style="font-size:18px;">package com.h8.imageroundcorner;
  2. import android.app.Activity;
  3. import android.graphics.Bitmap;
  4. import android.graphics.BitmapFactory;
  5. import android.graphics.Canvas;
  6. import android.graphics.Paint;
  7. import android.graphics.PorterDuffXfermode;
  8. import android.graphics.Rect;
  9. import android.graphics.RectF;
  10. import android.graphics.Bitmap.Config;
  11. import android.graphics.PorterDuff.Mode;
  12. import android.os.Bundle;
  13. import android.widget.ImageView;
  14. public class TestActivity extends Activity {
  15. ImageView imageView;
  16. @Override
  17. protected void onCreate(Bundle savedInstanceState) {
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.test);
  20. imageView = (ImageView) findViewById(R.id.imageView2);
  21. Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.my);
  22. imageView.setImageBitmap(toRoundCorner(b,100));
  23. }
  24. public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) {
  25. Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);
  26. Canvas canvas = new Canvas(output);
  27. final int color = 0xff424242;
  28. final Paint paint = new Paint();
  29. final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
  30. final RectF rectF = new RectF(rect);
  31. final float roundPx = pixels;
  32. paint.setAntiAlias(true);
  33. canvas.drawARGB(0, 0, 0, 0);
  34. paint.setColor(color);
  35. canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
  36. paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
  37. canvas.drawBitmap(bitmap, rect, rect, paint);
  38. return output;
  39. }
  40. }
  41. </span>

最后,我们来看一下效果图:

android制作圆角button相关推荐

  1. android倒角按钮,Android实现圆角Button按钮

    本文实例讲述了Android开发圆角Button按钮实现过程,分享给大家供大家参考,具体内容如下 需求及效果图: 实现思路: 1.shape实现圆角 在drawable新建两个xml 文件, 这两个 ...

  2. android 实现圆角按钮,Android实现圆角Button按钮

    本文实例讲述了Android开发圆角Button按钮实现过程,分享给大家供大家参考,具体内容如下 需求及效果图: 实现思路: 1.shape实现圆角 在drawable新建两个xml 文件, 这两个 ...

  3. Android 圆角Button

    1. 先在res/drawable中定义一个shape.xml文件,具体的颜色你可以自己调 <?xml version="1.0" encoding="UTF-8& ...

  4. 【Android开发】自定义圆角button样式

    [Android开发]自定义圆角button样式 结果图 步骤 在res/drawable中新建一个drawable文件,自定义命名为btu.xml; 在btu.xml中设置圆角大小和填充颜色,代码如 ...

  5. Android的圆角按钮和按钮颜色

    1. android 设置圆角按钮后,按下按钮后,还能改变按钮的颜色 <span style="font-size:18px;"><?xml version=&q ...

  6. 如何制作圆角布局..?

    本文翻译自:How to make layout with rounded corners..? How can I make a layout with rounded corners? 如何制作圆 ...

  7. [转]android 制作.9.png图片 解决图形变形问题

    [转]android 制作.9.png图片 2012-8-10阅读1164 评论1 本文转自:http://xiaoming123123.iteye.com/blog/1489253 "点九 ...

  8. android多个按钮美化,Android开发学习系列(一)——Android按钮圆角美化

    今天给大家介绍一下Android Shape Drawable 美化圆角图形,废话不多说,直接上代码 1.首先你得有一个button,在Android xml中直接创建一个控件 android:id= ...

  9. Android 制作一款短视频app软件可在线观看(视频实时更新)

    Android 制作一款短视频app软件可在线观看(视频实时更新) 第一步:完成界面的设计 界面布局采用LinearLayout,添加TextView控件显示标题,添加4个Button按钮可切换不同的 ...

最新文章

  1. 「NLP」用于序列标注问题的条件随机场
  2. python 事务操作_Python实现完整的事务操作示例
  3. S1.2 Python开发规范指南
  4. java pdf 书签_Java 展开或折叠PDF中的书签
  5. linux安装pip
  6. C#使用HTML文件中的file文件上传,用C#代码接收上传文件
  7. Java 多线程 —— wait 与 notify
  8. MySql 性能优化
  9. Programming Computer Vision with Python【学习笔记】【第一章】
  10. java解析apache日志_使用Apache Log4j 2解析日志条目
  11. Ionic常见问题--插件无法下载:npm ERR打包sha1错误
  12. 【目标跟踪】基于贝叶斯网络实现目标滤波跟踪附matlab代码
  13. 报错:The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone.
  14. 药店不停业盘点操作流程,海典盘点机PDA操作使用说明
  15. Python TypeError: cat() takes no arguments
  16. Linux内核中的延时函数详解
  17. 【第五课】UAV倾斜摄影测量三维建模之空三计算问题
  18. 2023每日发布行业及概念热点切换跟踪图!
  19. AI路径查找器如何使用
  20. 利用conda安装包、卸载包、升级包、查看包信息等操作

热门文章

  1. 获取iframe实际高度
  2. boost的libboost_system问题 undefined reference to `boost::system::generic_categor
  3. 计算机科学领域几个常用的期刊
  4. 【mybatis】mybatis中使用小于号
  5. 三角形判断(直角,等边,一般)
  6. 以太坊开发文档09 - javascriptApi
  7. 高效节能,绿色低碳:联想水冷解决方案赋能绿色智能算力基础设施
  8. VS插件_Supercharger_Auto Placeholders自动添加 用户+时间
  9. 如何两周学完操作系统?我是这样做的
  10. linux获取夏令时时间,关于时区:获取C中时区的夏令时转换日期