【问题标题】:Android: Creating contact thumbnail from name initialsAndroid:从姓名首字母创建联系人缩略图
【发布时间】:2015-05-15 19:15:43
【问题描述】:

我有一个包含一些电子邮件的 Android ListView。其中一些有联系人缩略图,而另一些则没有。对于未知的联系人缩略图,我想创建一个位图,其中包含相应电子邮件 ID 的首字母。我怎样才能做到这一点?我见过一些 Android 应用程序使用这种技术来显示联系人缩略图,如下所示:

首先,我使用以下代码:

ImageView iv=(ImageView)findViewById(R.id.imageView1);
    TextView view = (TextView)findViewById(R.id.textView1);

    Bitmap b=Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas c = new Canvas(b);
    view.draw(c);
    iv.setImageBitmap(b);

TextView 在哪里保存一个简单的字符串。不幸的是,它不起作用。谁能给我一些指示?非常感谢您的帮助!

【问题讨论】:

    标签: android android-layout android-imageview thumbnails bitmapimage


    【解决方案1】:

    嗯,你在正确的轨道上。 试试这样的。

    ImageView iv=(ImageView)findViewById(R.id.imageView1);
    
    Bitmap b=Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas c = new Canvas(b);
    c.drawText(initials,x,y,paint);
    iv.setImageBitmap(b);
    

    您应该创建自己的逻辑来使文本居中。您可以使用以下一些辅助方法 Paint.getTextSize() 来找出文本需要多少空间。

    【讨论】:

    • 这行paint是什么c.drawText(initials,x,y,paint);
    【解决方案2】:

    使用这个库很简单,你可以试试:D

    https://github.com/fahmisdk6/AvatarView

    XML 文件中的这段代码

    <me.fahmisdk6.avatarview.AvatarView
                android:id="@+id/avatar_user5"
                android:layout_width="48dp"
                android:layout_height="48dp"
                app:avCornerRadius="8dp"
                app:avBgTextColor="@color/colorAccent"
                app:avTextColor="@color/colorPrimary"
                app:avTextSize="10sp"
                app:avFont="font/avenir_black.ttf"/>
    

    这在 Java 文件中

    AvatarView avatarView5 = (AvatarView) findViewById(R.id.avatar_user5);
    avatarView5.bind("Fahmi Sidik", "https://avatars2.githubusercontent.com/u/10940190?v=3&s=460");
    

    【讨论】:

      【解决方案3】:

      阅读this 答案。他使用了使用按钮而不是创建位图的出色策略。再加上这一点,您可以尝试从一组颜色中进行选择(用于背景和文本),尝试使用材料设计指南。This 答案已经解释了如何做到这一点。

      【讨论】:

        猜你喜欢
        • 2014-09-07
        • 2012-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多