1

This is what i want to implement
카드보기에서이 사용자 정의 레이아웃을 도와 줄 사람이 있습니까? 항목 목록을 표시하고 있으며 이와 같은 항목을 표시해야합니다. 그러나이 방법을 이해하는 방법을 이해하지 못합니다.Android - 리사이더보기를 사용하여보기를 만드는 방법은 무엇인가요?

기본적으로 재활용 업체보기가 있습니다. 내부에 카드가 있습니다. 카드에 흐린 배경 이미지가 있습니다. 맨 위에는 이와 비슷한 뷰가 있습니다. 아래에, 내가 구현 한 textviews가 있습니다.

하지만이 문제는 진정한 혼란입니다. 캔트 (Cant)가이를 어떻게 실현하는지 이해합니다.

+0

텍스트 및 반투명 배경으로 둥근 이미지 레이어는 내가 원하는 것입니다. 이미지는 왼쪽 위 및 오른쪽 위 모퉁이에서 볼 수있는 둥근 모서리가있는 카드보기의 일부입니다. –

답변

4

다음과 같이 시도해보십시오.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="70dp" 
    android:layout_height="22.27dp" 
    android:background="@drawable/img_online_scoreboard_text_background" > 

    <TextView 
     android:id="@+id/nameTextView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_toRightOf="@+id/playerImageView" 
     android:ellipsize="end" 
     android:gravity="bottom|left" 
     android:lines="1" 
     android:scrollHorizontally="true" 
     android:textColor="#FFFFFF" 
     android:textSize="5dp" /> 

    <ImageView 
     android:id="@+id/playerImageView" 
     android:layout_width="22.27dp" 
     android:layout_height="22.27dp" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:padding="0.5dp" /> 

</RelativeLayout> 

img_online_scoreboard_text_background.xml

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

    <solid android:color="#A5FFFFFF" /> 

    <stroke 
     android:width="0dp" 
     android:color="#00FFFFFF" /> 

    <padding 
     android:bottom="0dp" 
     android:left="0dp" 
     android:right="0dp" 
     android:top="0dp" /> 

    <corners 
     android:bottomLeftRadius="10dp" 
     android:bottomRightRadius="10dp" 
     android:topLeftRadius="10dp" 
     android:topRightRadius="10dp" /> 

</shape> 

설정 라운드 이미지 프로그래밍

public static Bitmap getCircularBitmap(Bitmap bm) { 
    if(bm == null) { 
     return bm; 
    } 
    int sice = Math.min((bm.getWidth()), (bm.getHeight())); 
    Bitmap bitmap = ThumbnailUtils.extractThumbnail(bm, sice, sice); 
    Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(output); 

    final int color = 0xffff0000; 
    final Paint paint = new Paint(); 
    final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); 
    final RectF rectF = new RectF(rect); 

    paint.setAntiAlias(true); 
    paint.setDither(true); 
    paint.setFilterBitmap(true); 
    canvas.drawARGB(0, 0, 0, 0); 
    paint.setColor(color); 
    canvas.drawOval(rectF, paint); 

    paint.setColor(Color.BLUE); 
    paint.setStyle(Paint.Style.STROKE); 
    paint.setStrokeWidth((float) 4); 
    paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); 
    canvas.drawBitmap(bitmap, rect, rect, paint); 

    return output; 
    } 

은 좋아 사용

imageView.setImageBitmap(getCircularBitmap(bitmap)); 
+1

감사합니다. 요구 사항을 조정하기 위해 코드를 수정했습니다. 이 리소스는 필요한 UI를 구축하는 데 도움이되었습니다. +1 getCircularBitmap 함수에 큰 도움이되었습니다. 안드로이드 스튜디오에 의해 렌더링 된 레이아웃에서 완벽하게 보이지만, 코드를 테스트 한 후에 코드를 게시 할 것입니다. 또한 둥근 모서리가있는 투명한 배경의 9 페이지 이미지를 만들었습니다. 그것을 상대 레이아웃의 배경으로 설정하십시오. –

+0

죄송 합니다만, 분당 15 평의 평판은 필요 없습니다. 그러나 그렇습니다, 이것은 확실히 +1입니다. 충분한 평판을 얻었을 때 줄 것이다. –

관련 문제