zoukankan      html  css  js  c++  java
  • Android RoundedBitmapDrawable:Android官方的圆角图形图象实现方案

    

    Android RoundedBitmapDrawable:Android官方的圆角图形图象实现方案


    RoundedBitmapDrawable是Android在support v4的扩展包中新增的实现圆角图形的关键类,借助RoundedBitmapDrawable的帮助,可以轻松的以Android标准方式实现圆角图形图象。
    写一个简单的例子。
    写一个线性布局,竖直方向放三个ImageView:

    <?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="zhangphil.app.MainActivity">
    
        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="5dp" />
    
        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="5dp" />
    
        <ImageView
            android:id="@+id/imageView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="5dp" />
    
    </LinearLayout>
    


    然后通过Java代码分别放原始图,圆角图,圆形图作为对比:

    package zhangphil.app;
    
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.support.v4.graphics.drawable.RoundedBitmapDrawable;
    import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.ImageView;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            //未做圆角处理的原始图
            ImageView image1 = (ImageView) findViewById(R.id.imageView1);
            image1.setImageResource(R.drawable.zhangphil);
    
            //圆角图
            RoundedBitmapDrawable roundedDrawable = RoundedBitmapDrawableFactory.create(getResources(), BitmapFactory.decodeResource(getResources(), R.drawable.zhangphil));
            roundedDrawable.getPaint().setAntiAlias(true);
            roundedDrawable.setCornerRadius(30);
            ImageView image2 = (ImageView) findViewById(R.id.imageView2);
            image2.setImageDrawable(roundedDrawable);
    
            //圆形图
            Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.zhangphil);
            RoundedBitmapDrawable circleDrawable = RoundedBitmapDrawableFactory.create(getResources(), BitmapFactory.decodeResource(getResources(), R.drawable.zhangphil));
            circleDrawable.getPaint().setAntiAlias(true);
            circleDrawable.setCornerRadius(Math.max(bitmap.getWidth(), bitmap.getHeight()));
            ImageView image3 = (ImageView) findViewById(R.id.imageView3);
            image3.setImageDrawable(circleDrawable);
        }
    }
    


    代码运行结果:



    附录文章:
    1,《Android圆形头像图Circle ImageView》链接地址:http://blog.csdn.net/zhangphil/article/details/44960551
    2,《Android CustomShapeImageView对图片进行各种样式裁剪:圆形、星形、心形、花瓣形等》链接地址:http://blog.csdn.net/zhangphil/article/details/50119921

  • 相关阅读:
    Console.WriteLine输出字符格式化
    GridView动态生成列问题
    日历控件,可运行在XHTML1.0下
    GridView內容導出Excel時異常:必须置於有 runat=server 的表单标记之中
    圆弧分割
    矩阵变换
    使用group by 来统计的小作业
    group by 后使用 rollup 子句总结
    mysql字符串拼接,存储过程,(来自网上看到)
    【深入理解Linux内核】《第二章 内存寻址》笔记 (2014-06-28 12:38)
  • 原文地址:https://www.cnblogs.com/hehehaha/p/6147287.html
Copyright © 2011-2022 走看看