添加Gmail Android App等默认用户图片

时间:2014-08-16 14:35:16

标签: android django twitter-bootstrap-3 gmail user-profile

如何从Android用户名的第一个字母动态创建用户图片,例如android上的Gmail应用程序吗?

enter image description here

我在 Django和Bootstrap 下工作,但我愿意接受任何语言或框架中的任何解决方案

现在,我正在使用新用户的默认图片来管理用户个人资料

enter image description here

让他们上传自己的个人资料图片。

  

class Profile(models.Model):

user = models.OneToOneField(User)
....

def get_picture(self):

    no_picture = settings.STATIC_URL + 'img/user.png'
    try:
        filename = settings.MEDIA_ROOT + '/profile_pictures/' + self.user.username + '.jpg'
        picture_url = settings.MEDIA_URL + 'profile_pictures/' + self.user.username + '.jpg'
        if os.path.isfile(filename):
            return picture_url
        else:
            return no_picture
    except Exception, e:
        return no_picture
.....

PS:我可以通过上传26张不同字母的图片来做到这一点,但在这里我想要一个动态解决方案出于某些原因

1 个答案:

答案 0 :(得分:1)

对于上下文,

我不相信Gmail Android应用实际上是在生成图片。这种效果可以在Android中实现,并具有以下形状作为可绘制背景:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/listview_background_shape">
    <padding android:left="2dp"
        android:top="2dp"
        android:right="2dp"
        android:bottom="2dp" />
    <solid android:color="#f5d2c3" />
     <size android:width="75dp"
          android:height="75dp" />
</shape>

并将其应用于textview:

  <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_gravity="center"
        android:background="@drawable/square_background"
        android:textSize="40dp"
        android:text="J" />

更好的解决方案是让您只在应用了背景的div中居中。这比为简单的事物生成图像要容易得多。