如何从Android用户名的第一个字母动态创建用户图片,例如android上的Gmail应用程序吗?
我在 Django和Bootstrap 下工作,但我愿意接受任何语言或框架中的任何解决方案。
现在,我正在使用新用户的默认图片来管理用户个人资料
让他们上传自己的个人资料图片。
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张不同字母的图片来做到这一点,但在这里我想要一个动态解决方案出于某些原因
答案 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
中居中。这比为简单的事物生成图像要容易得多。