您的位置:首页 > 移动开发 > Android开发

Android Demo---如何敲出圆角的Button+圆角头像

2015-09-28 09:04 751 查看
经常玩儿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 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>
第五步,编写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">

<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>
接着,我们来编写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;

@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;

}

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



小编寄语:该博文,小编主要简单的介绍了,如何在Android应用中制作出圆角的Button。以及如何制作出圆角的头像,还是那句话对于小编来说,既是挑战更是机遇,因为知识都是相通的,再者来说,在小编的程序人生中,留下最珍贵的记忆,虽然以后小编不一定从事安卓这个行业,代码世界里,很多种事,有的甜蜜,有的温馨,有的婉转成歌,有的绵延不息,在这些故事里,我们唯一的共通之处就是,某年,某月,某个波澜不惊的日子里,曾经很爱很爱你!爱你--这段实习的日子里,安卓带给小编的种种的惊喜。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: