도형을 그려 배경으로 설정하고 싶습니다. 모양은 한 모서리와 두 개의 절삭 날을 가지고 있습니다.하나의 모서리와 두 개의 커팅 엣지가있는 배경 도형 그리기 - Android
는 여기에 하나 개의 둥근 모서리와 두 개의 모서리를 직선으로 가입하여 원하는 모양의 거친이다. 나는 그것을 사용하고있다. 이걸 도와 줄 수 있니?
도형을 그려 배경으로 설정하고 싶습니다. 모양은 한 모서리와 두 개의 절삭 날을 가지고 있습니다.하나의 모서리와 두 개의 커팅 엣지가있는 배경 도형 그리기 - Android
는 여기에 하나 개의 둥근 모서리와 두 개의 모서리를 직선으로 가입하여 원하는 모양의 거친이다. 나는 그것을 사용하고있다. 이걸 도와 줄 수 있니?
(UDI의 대답에 따라) 9- 패치 비트 맵은 아마 가장 쉬운 방법입니다,하지만 당신은 코드에서 수행하려는 경우, 사용자 정의 모양 생성 :
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.drawable.shapes.Shape;
import android.graphics.RectF;
public class WeirdShape extends Shape {
private static final int COLOUR = Color.RED;
private static final float STROKE_WIDTH = 1.0f;
private static final float CORNER = 10.0f;
private final Paint border = new Paint();
private final Path path;
public WeirdShape() {
path = new Path();
border.setColor (COLOUR);
border.setStyle (Paint.Style.STROKE);
border.setStrokeWidth(STROKE_WIDTH);
border.setAntiAlias (true);
border.setDither (true);
border.setStrokeJoin (Paint.Join.ROUND);
border.setStrokeCap (Paint.Cap.ROUND);
}
@Override
protected void onResize(float width, float height) {
super.onResize(width, height);
float dx = STROKE_WIDTH/2.0f;
float dy = STROKE_WIDTH/2.0f;
float x = dx;
float y = dy;
float w = width - dx;
float h = height - dy;
RectF arc = new RectF(x,h-2*CORNER,x+2*CORNER,h);
path.reset();
path.moveTo(x + CORNER,y);
path.lineTo(w - CORNER,y);
path.lineTo(w,y + CORNER);
path.lineTo(w, h);
path.lineTo(x + CORNER,h);
path.arcTo (arc,90.0f,90.0f);
path.lineTo(dx,h - CORNER);
path.lineTo(dx,y + CORNER);
path.close();
}
@Override
public void draw(Canvas canvas, Paint paint) {
canvas.drawPath(path,border);
}
}
을 다음 사용자 지정을 사용
view.setBackground(new ShapeDrawable(new WeirdShape()));
과 같이 보입니다 :
을 그리기 배경으로 쉐이프의 모양
나는 측면이 제대로 및 PNG 당김
당신이 제안처럼 사각형의 모서리를 절단 ShapeDrawables에는 시설이 없습니다답장을 보내 주셔서 감사합니다. 이 셰이프를 다른 셰이프와 통합해야하며 이미 셰이프에 대한 코드가 있습니다. 그래서 나는 png 사용을 피하고 싶습니다. – MobileAppDeveloper
로 사용하기 위해 사용 포토샵을 말할 것입니다. '반경'구성 요소가 있습니다.
여러 이미지를 만들어 레이어 된 드로어 블을 사용하여 서로 쌓을 수도 있지만 복잡 할 수 있으며 오버 드로가 발생할 수 있습니다 (드로잉 성능이 좋지 않음).
또 다른 대안은 페인트 API를 사용하여 원하는 이미지를 생성 한 다음 캐시하여 사용할 수 있도록하는 것입니다.
put this in drawable like rounded_edittext.xml -->
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<solid android:color="#FFFFFF"/>
<corners
android:bottomRightRadius="0dp"
android:bottomLeftRadius="15dp"
android:topLeftRadius="10dp"
android:topRightRadius="5dp"/>
</shape>
call drawable as edittext background
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dip"
android:background="@drawable/rounded_edittext" />
</LinearLayout>
두 가지보기가 있습니다. 하나는 배경보기이고 다른 하나는 forground보기입니다. 배경보기가 그 구석에서 볼 수 있도록 전경보기의 한 모서리를 자르고 싶습니다. 내보기에 코드를 적용했습니다. 배경색을 설정할 수있는 방법은 무엇입니까? 당신이 만든 모양을 만들 수 있습니까? 그리고 어떻게 내가 cutted 모서리의 길이를 늘릴 수 있습니까? –
Paint.Style.STROKE를 Paint.Style.FILL_AND_STROKE로 변경하면 이미지가 채워지고 CORNER 상수는 모서리의 길이를 설정합니다. 그것이 원하는 것이 아니라면 새로운 질문을 게시해야합니다. – tonys