2011-07-18 9 views
0

画像がアンドロイド:srcで、角が丸くなったImageButtonを作成する必要があります。 どうすればいいですか?私はボタンのための私のカスタムサイズを持っている必要があり、私はボタンサイズで画像のサイズを自動的に変更したい。Android - 丸みを帯びたImageButton

+0

なぜバックグラウンドイメージでボタンを使用していませんか? – Sujit

+0

@Sujitどうすればいいですか?私はこれを試して: round_buttonは、角が丸い形状のxmlファイルです。私はこのxmlの背景を設定し、私はボタンに画像を設定する方法を知らない。 –

+0

あなたはアンドロイドを使うことができます:drawableTop = "@ drawable/icon"ボタンの上に画像を配置します。 – Sujit

答えて

2

for Round corner ImageButtonこれを使用してください。

@Override 
public void onCreate(Bundle mBundle) { 
super.onCreate(mBundle); 
setContentView(R.layout.main); 

ImageButton image = (ImageButton) findViewById(R.id.img); 
Bitmap bitImg = BitmapFactory.decodeResource(getResources(), 
    R.drawable.default_profile_image); 
image.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
    // TODO Auto-generated method stub 

    Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_LONG).show(); 
    } 
}); 
image.setImageBitmap(getRoundedCornerImage(bitImg)); 
} 

public static Bitmap getRoundedCornerImage(Bitmap bitmap) { 
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), 
    bitmap.getHeight(), Config.ARGB_8888); 
Canvas canvas = new Canvas(output); 

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

paint.setAntiAlias(true); 
canvas.drawARGB(0, 0, 0, 0); 
paint.setColor(color); 
canvas.drawRoundRect(rectF, roundPx, roundPx, paint); 

paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); 
canvas.drawBitmap(bitmap, rect, rect, paint); 

return output; 

} 

ここで、roundPxは丸形です。 e.g

+0

は、透明な背景や描画可能な状態を設定しています:image_view.setBackgroundColor(Color.parseColor( "#00000000")); roundPxを10000に設定すると、すべてのサイズで円になります。 –

関連する問題