2014-06-28 2 views
1

je dois avoir une vue d'image dans mon application qui a une chose à la frontière comme le suit:Android - l'ajout de bordure personnalisée à la vue de l'image

enter image description here

Je n'ai que l'image de la frontière, et imageview, et d'une manière ou d'une autre doit adapter l'imageview à l'intérieur de la frontière (l'image de frontière est transparente - comme celle utilisée dans cette question est téléchargée de here).

Des suggestions sur comment y parvenir?

+2

vous pouvez utiliser une image de centre transparent, puis adapter une autre imageView sur elle –

Répondre

1

Il existe de nombreuses solutions que vous pouvez faire.

  • Adresser une classe ImageView et passer outre OnDraw (toile) et de dessiner votre image sur la toile de la ImageView en utilisant la peinture et shader et fournissent la taille du rect à dessiner sur puis dessiner le cadre.

  • Définir l'arrière-plan de ImageView en tant qu'image Frame et Ur en tant que Src donnant le remplissage qui fera entrer l'image Src dans la zone transparente.

+0

Aucun d'entre eux sont enought bon pour devenir générique – deadfish

1

Essayez ceci, l'enregistrer comme "frame.9.png" comme 9patch, déposez-le dans le dossier de dessinables:

enter image description here

pic exampe dans le cadre, il devrait être plus grand, par exemple:

enter image description here

Exemple de mise en page:

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

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/frame"> 

    <ImageView 
     android:layout_gravity="center" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:src="@drawable/cat" 
     android:adjustViewBounds="true" 
     android:scaleType="centerCrop" 
     /> 
</LinearLayout> 

Résultat:

enter image description here

Rappelez-vous, 9-patch ne peux pas rétrécir ils peuvent étirer. Infos ici: https://stackoverflow.com/a/14274623/619673

image Cat a été téléchargé à partir http://www.socwall.com/wallpapers/search:cat/

Questions connexes