Android Demo---如何敲出圆角的Button+圆角头像
经常玩儿App的小伙伴都知道,APP上面有很多按钮都是圆角的,圆形给人感觉饱满,富有张力,不知道设计圆角按钮的小伙伴是不是和小编有着相同的想法`(*∩_∩*)′,听小编公司开发IOS的小伙伴说,他们里面直接有圆角的button,但是对于开发Android的小伙伴就不一样了,里面没有直接的圆角button可以供我们使用,在xml里面布局一个button,还不是圆角的,怎么办nie,方法总比困难多,我们成长的机会又来了,最近在小编的项目中,需要用到圆角的button,还需要用到圆角的头像,经过半天捣鼓,终于是圆角的啦,开心ing,效果图如下,但是效果图展示的用户中心是一张图片,不是用imageview。今天这篇博文,小编就来简单的介绍一下如何敲出圆角的Button以及圆角的头像,小编先来介绍如何敲出圆角的头像,效果图如下所示:
今天这篇博文,小编做了一个关于如何制作圆角的一个Android小demo,希望可以帮助到有需要的小伙伴,首先,新建一个Android项目,在drawable_xhdpi这个文件下面,新建一个Android xml文件,取名为fillet,如下图所示:
接着第二步,我们开始编写fillet里面的xml,代码如下所示:
<?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>
第三步,编写layout里面的文件activity_main.xml,代码如下所示:
<?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>
第四步,编写values文件下styles.xml的内容,具体代码如下所示:
<resources><!--Base application theme, dependent on API level. This theme is replacedby 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 inres/values-vXX/styles.xml, while customizations related tobackward-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>
第五步,编写FillButtonActivity.java类里面的内容,代码如下所示:
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(); } }); } }
最后我们来看一下运行的效果,如下图所示:
介绍完如何敲出圆角的Button之后,小编接着像小伙伴们介绍一下,如何敲出圆角的头像,首先,第一步,我们来编写xml里面的布局代码,具体代码如下所示:
<?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"><FrameLayoutandroid:layout_width="match_parent"android:layout_height="135dp"android:background="@drawable/us"><FrameLayoutandroid:layout_width="match_parent"android:layout_height="44dp"><ImageButtonandroid: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" /><!-- 关于我们的布局 --><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:text="关于我们"android:textColor="#fff"android:textSize="19sp" /> </FrameLayout><ImageViewandroid: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" /><!-- 用户昵称,无忧心情的布局 --><TextViewandroid: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>
接着,我们来编写java类里面的代码,代码如下所示:
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;@Overrideprotected 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;}}
最后,我们来看一下效果图:
小编寄语:该博文,小编主要简单的介绍了,如何在Android应用中制作出圆角的Button。以及如何制作出圆角的头像,还是那句话对于小编来说,既是挑战更是机遇,因为知识都是相通的,再者来说,在小编的程序人生中,留下最珍贵的记忆,虽然以后小编不一定从事安卓这个行业,代码世界里,很多种事,有的甜蜜,有的温馨,有的婉转成歌,有的绵延不息,在这些故事里,我们唯一的共通之处就是,某年,某月,某个波澜不惊的日子里,曾经很爱很爱你!爱你--这段实习的日子里,安卓带给小编的种种的惊喜。
Android Demo---如何敲出圆角的Button+圆角头像相关推荐
- android新年祝福代码,讯飞输入法发布Android新春版 Biu一下敲出美好祝愿!
原标题:讯飞输入法发布Android新春版 Biu一下敲出美好祝愿! 挥别难忘的2018,讯飞输入法与小伙伴们携手迎接"猪"事顺利的新一年.Boys and 朋友们.Ladies ...
- Android创建圆形或圆角按钮Button 真菜鸟食用
Android创建圆形或圆角按钮Button 真菜鸟食用 1.在res\drawable下创建.xml文件(我起名为round_button.xml) 你可以右击res新建Android资源文件,将R ...
- Android自定义底部弹出窗-dialog(2种实现分析+源码)
Android自定义底部弹出窗-dialog(2种实现分析+源码) 上线项目功能抽取,在项目开发中,我们会在许多地方会用到底部自定义弹窗,比如设置:个人账户退出,切换,照片的拍照或者相册的调出,或者一 ...
- Tensorflow Lite Android Demo App
Tensorflow Lite Android Demo App 本文仅演示如何打通Tensorflow Lite官方demo. Building in Android Studio using T ...
- LeadTools Android 入门教学——运行第一个Android Demo
LeadTools 有很多Windows平台下的Demo,非常全面,但是目前开发手机应用的趋势也越来越明显,LeadTools也给大家提供了10个Android的Demo,这篇文章将会教你如何运行第一 ...
- android的底部弹出框炫酷的样式,Android自定义底部弹出框ButtomDialog
本文实例为大家分享了Android自定义底部弹出框的具体代码,供大家参考,具体内容如下 先看看效果和你要的是否一样 一 .先来配置自定义控件需要的资源 1.在res文件夹下创建一个anim文件夹并创建 ...
- android手机自动化测试,appium自动化测试Android Demo
1.启动appium上一篇介绍了iOS Demo,此片将开启Android Demo,依然是mac系统,以后会开启Windows系统的. Android Demo开启前,Android配置环境要配置好 ...
- 安卓棒棒糖,敲出国内ROM厂商真面目
自从去年6月安卓L正式面世以来,国内ROM厂商无不对其磨刀霍霍,纷纷准备开发基于Android 5.0的操作系统.去年下半年的营销大战一定程度上转移了人们的视线,魅族连续发布4款新机很大程度上培育了市 ...
- Android Demo : 悬浮窗
Android Demo : 悬浮窗 搬砖自:简书 链接:https://www.jianshu.com/p/ac63c57d2555 设计思路分析 本Demo的设计思路如下: 一个MainActiv ...
最新文章
- python备份文件代码_python备份文件以及mysql数据库的脚本代码
- ASP.NET输出JSON格式数据
- hdu 4888 最大流慢板
- 16进制ff转化为二进制_3秒钟快速转换十六进制为二进制
- 架构无小事:QQ碰微信 贴吧遇微博
- python的protected和private
- Splash 渲染引擎简介
- 模型优化:BatchNorm合并到卷积中
- PHP的几种排序算法的比较
- gitbook新版本 build命令导出的html不能跳转?
- postman delete 请求传递数组_Postman请求方法
- python staticmethod
- 大话中国骨干网(上)
- 【Python】torrentParser1.01
- Ajax请求前显示的等待图标
- HFSS仿真侧馈微带天线学习笔记
- win7共享计算机打不开,windows7共享文件夹打不开怎么办
- 江在川上曰:JS函数
- 考证大全 | 证券从业资格考试
- ffmpeg各种操作处理
热门文章
- 鸟叫就能黑掉AI系统,而且你根本察觉不到
- 拿到软银巨额投资后,通用无人车部门Cruise可能要单独IPO了
- 有个AI陪你一起写代码,是种怎样的体验?| 附ICLR论文
- 如何让手机快速运行AI应用?这有份TVM优化教程
- IE 浏览器 js new Date NAN
- 游戏人生Silverlight(6) - 贪吃蛇[Silverlight 3.0(c#)]
- openwrt 网关烧写程序
- 小端法、大端法、网络字节转序
- 点滴积累【JS】---JS小功能(JS实现多物体缓冲运动)
- java设计模式(八) 适配器模式