Android kullanıcı arayüzünde yuvarlatılmış bir dikdörtgen çizmem gerekiyor. Aynı yuvarlatılmış dikdörtgene sahip olmak TextView
ve EditText
ayrıca yardımcı olacaktır.
Android kullanıcı arayüzünde yuvarlatılmış bir dikdörtgen çizmem gerekiyor. Aynı yuvarlatılmış dikdörtgene sahip olmak TextView
ve EditText
ayrıca yardımcı olacaktır.
Yanıtlar:
Düzeninizde xml şunları yapın:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/holo_red_dark" />
<corners android:radius="32dp" />
</shape>
Değiştirerek android:radius
Eğer köşelerinden "radius" miktarını değiştirebilir.
<solid>
Çekmecenin rengini tanımlamak için kullanılır.
Sen yerini kullanabilirsiniz android:radius
ile android:bottomLeftRadius
, android:bottomRightRadius
, android:topLeftRadius
ve android:topRightRadius
her köşe için yarıçapı tanımlamak için.
Sanırım, tam olarak buna ihtiyacın var.
Burada yuvarlatılmış dikdörtgen oluşturan çekilebilir (xml) dosya. round_rect_shape.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#ffffff" />
<corners
android:bottomLeftRadius="8dp"
android:bottomRightRadius="8dp"
android:topLeftRadius="8dp"
android:topRightRadius="8dp" />
</shape>
İşte düzen dosyası: my_layout.xml
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/round_rect_shape"
android:orientation="vertical"
android:padding="5dp" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Something text"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#ff0000" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<requestFocus />
</EditText>
</LinearLayout>
-> Yukarıdaki kodda, LinearLayout arka plana sahip (Yuvarlatılmış dikdörtgen oluşturmak için yerleştirilecek anahtar rol budur). Böylece arka planı herkes için yuvarlak dikdörtgen olarak görmek üzere TextView, EditText ... gibi herhangi bir görünümü o LinearLayout'a yerleştirebilirsiniz.
android:background="@drawable/round_rect_shape"
Benim styles.xml içinde kullanmak istiyorum, ama başka bir özellik ayarlayarak farklı arka plan renkleri kullanmak istiyorum. Her renk için özdeş bir çizilebilir oluşturmak dışında herhangi bir seçenek var mı?
İçinde monodroid
, bunu yuvarlatılmış dikdörtgen için yapabilir ve daha sonra bunu üst sınıf olarak tutabilirsiniz editbox
ve diğer düzen özellikleri eklenebilir.
class CustomeView : TextView
{
public CustomeView (Context context, IAttributeSet ) : base (context, attrs)
{
}
public CustomeView(Context context, IAttributeSet attrs, int defStyle) : base(context, attrs, defStyle)
{
}
protected override void OnDraw(Android.Graphics.Canvas canvas)
{
base.OnDraw(canvas);
Paint p = new Paint();
p.Color = Color.White;
canvas.DrawColor(Color.DarkOrange);
Rect rect = new Rect(0,0,3,3);
RectF rectF = new RectF(rect);
canvas.DrawRoundRect( rectF, 1,1, p);
}
}
}
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle">
<solid android:color="@color/colorAccent" />
<corners
android:bottomLeftRadius="500dp"
android:bottomRightRadius="500dp"
android:topLeftRadius="500dp"
android:topRightRadius="500dp" />
</shape>
Şimdi, bu şekli hangi öğeyi kullanmak istediğinizi ekleyin:
android:background="@drawable/custom_round_ui_shape"
"Custom_round_ui_shape" adlı çekmecede yeni bir XML oluşturun
Yuvarlak Dikdörtgen için CardView kullanın . CardView, cardCornerRadius, cardBackgroundColor, cardElevation ve daha pek çok işlevsellik kazandırır. CardView, Kullanıcı Arabirimini Özel Yuvarlak Dikdörtgen'den daha uygun hale getirir.
Drawables klasöründe yeni bir xml arka planı tanımlayabilirsiniz
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="enter_your_desired_color_here" />
<corners android:radius="enter_your_desired_radius_the_corners" />
</shape>
Bundan sonra bunu arka planda tanımlayarak TextView veya EditText'e ekleyin.
<TextView
android:id="@+id/textView"
android:layout_width="0dp"
android:layout_height="80dp"
android:background="YOUR_FILE_HERE"
Android:layout_weight="1"
android:gravity="center"
android:text="TEXT_HERE"
android:textSize="40sp" />
Draw_back üzerine sağ tıklayın ve örneğin button_background.xml adına yeni düzen xml dosyası oluşturun. sonra aşağıdaki kodu kopyalayıp yapıştırın. İhtiyacınıza göre değiştirebilirsiniz.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="14dp" />
<solid android:color="@color/colorButton" />
<padding
android:bottom="0dp"
android:left="0dp"
android:right="0dp"
android:top="0dp" />
<size
android:width="120dp"
android:height="40dp" />
</shape>
Şimdi kullanabilirsiniz.
<Button
android:background="@drawable/button_background"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/white" />
<corners android:radius="4dp" />
</shape>