Има ли някакъв начин да се поддържа съотношението на чертежите, когато се прилага като фон на Button
(не мога да използвам ImageButton
(нуждая се от възможност за текст на Button
), не мога да използвам setCompoundDrawables()
, защото това също не отговаря на изискванията ми (направих своя собствен клас за поддръжка на добавяне на фонове, като същевременно запазва оригиналния бутон по подразбиране на android, плюс трябва да задам фона в средата на бутона, а не отляво, отдясно, отгоре или отдолу)).
Опитах решение с ScaleDrawable
, но или правя нещо нередно, или не работи:
Bitmap scaled = Bitmap.createScaledBitmap(original, (int)newBmpWidth, (int)newBmpHeight, false);
BitmapDrawable bd = new BitmapDrawable(scaled);
ScaleDrawable sd = new ScaleDrawable(bd, Gravity.CENTER, a, b);
//for a and b I tried lots of different values, ranging from 0.07f to 1000
sd.setLevel(1);
След това използвам ScaleDrawable
като фон, но така или иначе се разтяга.
Опитах и InsetDrawable
, но отново, или правя нещо нередно, или не работи, очаквайки първото:
BitmapDrawable mBitmapDrawable = new BitmapDrawable(mBitmap);
InsetDrawable mInsetDrawable = new InsetDrawable(mBitmapDrawable, mLeftOffset, 0, mRightOffset, 0);
След това използвам InsetDrawable
като фон, но това също се разтяга.
Има ли някакъв начин да се приложи фон, но да се запази съотношението на страните върху Button
? Мога да намеря много отговори за ImageButtons
, но за съжаление Button
няма метод setImageBitmap()
или setScaleType()
.
Button
? - person Gagan   schedule 31.10.2012Button
s варира, но височината остава постоянна. Така че ще бъде доста трудно да запазите съотношението на изображението непокътнато. - person Gagan   schedule 31.10.2012