android制作圆角button
转载: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,代码如下所示:
- <span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?>
- <shape
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="rectangle">
- <!-- 填充的颜色 -->
- <solid android:color="#4392F9" />
- <!-- 设置按钮的四个角为弧形 -->
- <!-- android:radius 弧形的半径 -->
- <corners android:radius="5dip" />
- <!-- padding:Button里面的文字与Button边界的间隔 -->
- <padding
- android:left="10dp"
- android:top="10dp"
- android:right="10dp"
- android:bottom="10dp" />
- </shape> </span>
第三步,编写layout里面的文件activity_main.xml,代码如下所示:
- <span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <!--等一个故事的布局,写着玩儿的`(*∩_∩*)′ -->
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="等一个故事"/>
- <!-- 圆角button的布局 -->
- <Button
- android:id="@+id/filletButton"
- android:layout_gravity="center"
- android:text="圆角按钮 "
- android:textColor="#FFFFFF"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="@drawable/fillet"/>
- </LinearLayout> </span>
第四步,编写values文件下styles.xml的内容,具体代码如下所示:
- <span style="font-size:18px;"><resources>
- <!--
- Base application theme, dependent on API level. This theme is replaced
- by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
- -->
- <style name="AppBaseTheme" parent="android:Theme.Light">
- <!--
- Theme customizations available in newer API levels can go in
- res/values-vXX/styles.xml, while customizations related to
- backward-compatibility can go here.
- -->
- </style>
- <!-- Application theme. -->
- <style name="AppTheme" parent="AppBaseTheme">
- <!-- All customizations that are NOT specific to a particular API-level can go here. -->
- </style>
- <string name="action_settings">Settings</string>
- </resources>
- </span>
第五步,编写FillButtonActivity.java类里面的内容,代码如下所示:
- <span style="font-size:18px;">package com.example.filletbutton;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.Toast;
- public class FilletButtonActivity extends Activity {
- Button FilletButton;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- FilletButton=(Button)findViewById(R.id.filletButton);
- //使用匿名类注册Button事件
- FilletButton.setOnClickListener(new OnClickListener()
- {
- public void onClick(View v)
- {
- Toast.makeText(FilletButtonActivity.this, "你点击了圆角按钮",Toast.LENGTH_LONG).show();
- }
- });
- }
- }
- </span>
最后我们来看一下运行的效果,如下图所示:
介绍完如何敲出圆角的Button之后,小编接着像小伙伴们介绍一下,如何敲出圆角的头像,首先,第一步,我们来编写xml里面的布局代码,具体代码如下所示:
- <span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns: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"
- tools:context=".TestActivity">
- <FrameLayout
- android:layout_width="match_parent"
- android:layout_height="135dp"
- android:background="@drawable/us">
- <FrameLayout
- android:layout_width="match_parent"
- android:layout_height="44dp">
- <ImageButton
- android:id="@+id/about_us_back"
- android:layout_width="14dp"
- android:layout_height="25.5dp"
- android:layout_gravity="center_vertical"
- android:layout_marginLeft="10dp"
- android:background="@drawable/back" />
- <!-- 关于我们的布局 -->
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:text="关于我们"
- android:textColor="#fff"
- android:textSize="19sp" />
- </FrameLayout>
- <ImageView
- android:id="@+id/imageView2"
- android:layout_width="70dp"
- android:layout_height="70dp"
- android:layout_marginTop="8dp"
- android:layout_gravity="center"
- android:layout_alignParentTop="true"
- android:layout_centerHorizontal="true"
- android:src="@drawable/my" />
- <!-- 用户昵称,无忧心情的布局 -->
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal|bottom"
- android:layout_marginBottom="5dp"
- android:textColor="#FFFFFF"
- android:text="无忧心情" />
- </FrameLayout>
- </LinearLayout>
- </span>
接着,我们来编写java类里面的代码,代码如下所示:
- <span style="font-size:18px;">package com.h8.imageroundcorner;
- import android.app.Activity;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.Canvas;
- import android.graphics.Paint;
- import android.graphics.PorterDuffXfermode;
- import android.graphics.Rect;
- import android.graphics.RectF;
- import android.graphics.Bitmap.Config;
- import android.graphics.PorterDuff.Mode;
- import android.os.Bundle;
- import android.widget.ImageView;
- public class TestActivity extends Activity {
- ImageView imageView;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.test);
- imageView = (ImageView) findViewById(R.id.imageView2);
- Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.my);
- imageView.setImageBitmap(toRoundCorner(b,100));
- }
- public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) {
- Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);
- Canvas canvas = new Canvas(output);
- final int color = 0xff424242;
- final Paint paint = new Paint();
- final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
- final RectF rectF = new RectF(rect);
- final float roundPx = pixels;
- paint.setAntiAlias(true);
- canvas.drawARGB(0, 0, 0, 0);
- paint.setColor(color);
- canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
- paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
- canvas.drawBitmap(bitmap, rect, rect, paint);
- return output;
- }
- }
- </span>
最后,我们来看一下效果图:
android制作圆角button相关推荐
- android倒角按钮,Android实现圆角Button按钮
本文实例讲述了Android开发圆角Button按钮实现过程,分享给大家供大家参考,具体内容如下 需求及效果图: 实现思路: 1.shape实现圆角 在drawable新建两个xml 文件, 这两个 ...
- android 实现圆角按钮,Android实现圆角Button按钮
本文实例讲述了Android开发圆角Button按钮实现过程,分享给大家供大家参考,具体内容如下 需求及效果图: 实现思路: 1.shape实现圆角 在drawable新建两个xml 文件, 这两个 ...
- Android 圆角Button
1. 先在res/drawable中定义一个shape.xml文件,具体的颜色你可以自己调 <?xml version="1.0" encoding="UTF-8& ...
- 【Android开发】自定义圆角button样式
[Android开发]自定义圆角button样式 结果图 步骤 在res/drawable中新建一个drawable文件,自定义命名为btu.xml; 在btu.xml中设置圆角大小和填充颜色,代码如 ...
- Android的圆角按钮和按钮颜色
1. android 设置圆角按钮后,按下按钮后,还能改变按钮的颜色 <span style="font-size:18px;"><?xml version=&q ...
- 如何制作圆角布局..?
本文翻译自:How to make layout with rounded corners..? How can I make a layout with rounded corners? 如何制作圆 ...
- [转]android 制作.9.png图片 解决图形变形问题
[转]android 制作.9.png图片 2012-8-10阅读1164 评论1 本文转自:http://xiaoming123123.iteye.com/blog/1489253 "点九 ...
- android多个按钮美化,Android开发学习系列(一)——Android按钮圆角美化
今天给大家介绍一下Android Shape Drawable 美化圆角图形,废话不多说,直接上代码 1.首先你得有一个button,在Android xml中直接创建一个控件 android:id= ...
- Android 制作一款短视频app软件可在线观看(视频实时更新)
Android 制作一款短视频app软件可在线观看(视频实时更新) 第一步:完成界面的设计 界面布局采用LinearLayout,添加TextView控件显示标题,添加4个Button按钮可切换不同的 ...
最新文章
- 「NLP」用于序列标注问题的条件随机场
- python 事务操作_Python实现完整的事务操作示例
- S1.2 Python开发规范指南
- java pdf 书签_Java 展开或折叠PDF中的书签
- linux安装pip
- C#使用HTML文件中的file文件上传,用C#代码接收上传文件
- Java 多线程 —— wait 与 notify
- MySql 性能优化
- Programming Computer Vision with Python【学习笔记】【第一章】
- java解析apache日志_使用Apache Log4j 2解析日志条目
- Ionic常见问题--插件无法下载:npm ERR打包sha1错误
- 【目标跟踪】基于贝叶斯网络实现目标滤波跟踪附matlab代码
- 报错:The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone.
- 药店不停业盘点操作流程,海典盘点机PDA操作使用说明
- Python TypeError: cat() takes no arguments
- Linux内核中的延时函数详解
- 【第五课】UAV倾斜摄影测量三维建模之空三计算问题
- 2023每日发布行业及概念热点切换跟踪图!
- AI路径查找器如何使用
- 利用conda安装包、卸载包、升级包、查看包信息等操作
热门文章
- 获取iframe实际高度
- boost的libboost_system问题 undefined reference to `boost::system::generic_categor
- 计算机科学领域几个常用的期刊
- 【mybatis】mybatis中使用小于号
- 三角形判断(直角,等边,一般)
- 以太坊开发文档09 - javascriptApi
- 高效节能,绿色低碳:联想水冷解决方案赋能绿色智能算力基础设施
- VS插件_Supercharger_Auto Placeholders自动添加 用户+时间
- 如何两周学完操作系统?我是这样做的
- linux获取夏令时时间,关于时区:获取C中时区的夏令时转换日期