Как сделать рамку с помощью ImageView? - PullRequest
1 голос
/ 29 октября 2011

У меня есть приложение, которое выбирает фотографии и просматривает их в ImageView.Я хотел, чтобы приложение показывало выбранные фотографии из галереи так же, как это делает Google+.

Я пытался использовать CENTER_CROP и CENTER_INSIDE, но фотография выходит за границы.*

Ответы [ 2 ]

1 голос
/ 29 октября 2011
iv.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                v.setBackgroundResource(R.drawable.border04);
            }
        });

border04.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle" android:layout_width="wrap_content">
            <stroke android:width="0.5dp" android:color="#FF000000" />
            <solid android:color="#FFFFFFFF" />
            <padding android:left="2dp" android:top="2dp" android:right="2dp"
                android:bottom="2dp" />
            <corners android:radius="0dp" />
        </shape>
    </item>


</layer-list>

другая граница (border03.xml):

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle" android:layout_width="wrap_content">
            <stroke android:width="1dp" android:color="#FF000000" />
            <solid android:color="#00000000" />
            <padding android:left="1dp" android:top="1dp" android:right="1dp"
                android:bottom="1dp" />
            <corners android:radius="1dp" />

        </shape>
    </item>

    <item android:top="1dp" android:bottom="1dp">
        <shape android:shape="rectangle">
            <gradient android:startColor="#252525" android:endColor="#252525"
                android:angle="270" android:centerColor="#545454" />
            <!-- border width and color -->
            <stroke android:width="1dp" android:color="#FFDDDDDD" />
        </shape>
    </item>

</layer-list>
0 голосов
/ 30 октября 2011

Я изменил некоторые коды и получил желаемые результаты.

Bitmap bm = BitmapFactory.decodeFile(fp);
Matrix mx = new Matrix();

int w = bm.getWidth();
int h = bm.getHeight();     

if (w > h) {
    mx.postScale((float) 98 / h, (float) 98 / h);
    bm = Bitmap.createBitmap(bm, (w - h) / 2, 0, h, h, mx, true);
} else {
    mx.postScale((float) 98 / w, (float) 98 / w);
    bm = Bitmap.createBitmap(bm, 0, (h - w) / 2, w, w, mx, true);
}

iv.setImageBitmap(bm);
iv.setBackgroundResource(R.drawable.btn_shp_selphoto);
...