2015-09-03 1 views
0

У меня есть ListFragment, в котором я загружаю изображения, используя picasso в ListView. Вот мой ArrayAdapter код:Как добавить текст в конец ImageView в Android?

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
    if (null == convertView) { 
     convertView = inflater.inflate(R.layout.list_dish_view, parent, false); 
    } 

    DrawLineTransformationation myTransformation = new DrawLineTransformationation() { 
     @Override 
     public String key() { 
      return super.key(); 
     } 
    }; 


    Picasso 
      .with(context) 
      .load("http://i.imgur.com/rFLNqWI.jpg") 
      .transform(myTransformation) 
      .fit() 
      .into((ImageView) convertView); 
    return convertView; 
} 

private class DrawLineTransformationation implements Transformation { 
    @Override 
    public String key() { 
     // TODO Auto-generated method stub 
     return "drawline"; 
    } 

    @Override 
    public Bitmap transform(Bitmap bitmap) { 
     // TODO Auto-generated method stub 
     synchronized (DrawLineTransformationation.class) { 
      if(bitmap == null) { 
       return null; 
      } 
      Bitmap resultBitmap = bitmap.copy(bitmap.getConfig(), true); 
      Bitmap bitmapImage = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_heart); 
      Canvas canvas = new Canvas(resultBitmap); 
      Paint paint = new Paint(); 
      paint.setAntiAlias(true); 
      paint.setColor(Color.WHITE); 
      paint.setStyle(Paint.Style.FILL); 
      paint.setTextSize(50); 
      paint.setShadowLayer(2.0f, 1.0f, 1.0f, Color.BLACK); 

      canvas.drawText("$250", 10, 500, paint); 
      canvas.drawBitmap(bitmapImage, 900, 20, null); 
      bitmap.recycle(); 
      return resultBitmap; 
     } 
    } 
} 

list_dish_view.xml

<?xml version="1.0" encoding="utf-8"?> 

<ImageView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/Roomimg" 
    android:layout_width="match_parent" 
    android:layout_height="200dp"/> 

Если я запускаю приведенный выше код я могу видеть это view. Теперь я хочу добавить текст в конце каждого изображения и добавить изображение в правый нижний угол (чтобы половина стороны была на текстовом описании, а другая половина - на большом изображении). См. Пример this. Вы можете видеть текст и изображение профиля в поле зрения. Как я могу добиться в моем случае?

+2

Используйте FrameLayout и поместите свой текст. – Raghunandan

+0

@ Raghunandan вы можете предоставить мне небольшой фрагмент кода или псевдокод для использования Framelayout? Потому что я беспокоюсь о текущем 'bitmap' –

+0

, если эти изображения поступают с PHP-сервера, вы можете подготовить их так, как с помощью - ImageMagick - http://php.net/manual/en/book.imagick.php - так что вы заставляйте их готовиться «на лету», ничего не делая в Android. Я использую этот процесс для маркеров карты, где я включаю изображение на маркер. – Tasos

ответ

1

Попробуйте следующую схему, чтобы достичь вашего дизайна. Я использовал отрицательное маржирование в xml. Если вы хотите его избежать, маржа не может быть активирована после вычисления.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentTop="true" 
     android:background="#FF000000" 
     android:src="@drawable/matrix" /> 

    <TextView 
     android:id="@+id/textView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/imageView" 
     android:layout_centerHorizontal="true" 
     android:background="#FFFF00FF" 
     android:padding="10dp" 
     android:text="Some text........." /> 

    <ImageView 
     android:id="@+id/profilePic" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:layout_alignParentRight="true" 
     android:layout_below="@id/imageView" 
     android:layout_marginTop="-25dp" 
     android:src="@drawable/circle" /> 
</RelativeLayout> 

 Смежные вопросы

  • Нет связанных вопросов^_^