problem mit einer Bildansicht
Habe ich eine android-app, in denen ich ein Foto mit dem android-Kamera, dann betrachte ich das Foto, wenn es mir gefällt dann lade ich das Bild auf einer website.
Hochladen das Bild auf der website, die ich habe bemerkt, dass es einige Pixel, die sind nicht sichtbar auf dem Handy!!!Auf der website der Bild hat ein paar extra-details, die sind nicht sichtbar auf dem Handy-Bildschirm!!!
Das Bild auf dem Handy-Bildschirm ist in einer Bildansicht.
Dies ist das layout der Tätigkeit:
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:scaleType="centerCrop"
android:id="@+id/myPic"
/>
<Button
android:text="Confirm Photo"
android:layout_toLeftOf="@id/back"
android:id="@+id/confirm"
android:layout_marginTop="530dip"
android:layout_height="wrap_content"
android:layout_width="165dip"
android:layout_alignParentRight="true"
>
</Button>
</RelativeLayout>
Ist dies, wie ich das Bild auf der imageview
:
Bundle extras = getIntent().getExtras();
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize =2;
byte[] imageData = extras.getByteArray("imageData");
Bitmap myImage = BitmapFactory.decodeByteArray(imageData , 0, imageData.length,options);
Matrix mat=new Matrix();
mat.postRotate(90);
bitmapResult = Bitmap.createBitmap(myImage, 0, 0, myImage.getWidth(),myImage.getHeight(), mat, true);
Canvas c = new Canvas(bitmapResult);
drawTextImage(bitmapResult);
StoreByteImage(this, bitmapResult,100);
ImageView imageView = (ImageView) findViewById(R.id.myPic);
imageView.setImageBitmap(bitmapResult);
Extra code oder andere details, die ich bin hier, um es dir zu geben.Dank
- welche Art von zusätzliche details beziehen Sie sich?
- Nicht
android:scaleType="centerCrop"
erklären, die zuschneiden? - Es ist die extradetails!Ich habe meine Frage bearbeitet
- centerCrop sollte das tun, was ich will-neu skalieren, das ganze Bild also das passt in mein Bildschirm...aber es funktioniert nicht...nach dem hochladen habe ich bemerkt, dass auf dem Bildschirm einige Pixel sind nicht sichtbar
- ja, das ist ein bisschen das, was ich vermute: wenn die Informationen tatsächlich bestehen in den nicht sichtbaren Teil des Bildes ist dies aufgrund der
centerCrop
. Wenn es in der Mitte des Bildes, dies ist eher verursacht durch die Auflösung des Bildes auf dem Bildschirm des mobile - zu klein um Sie zu sehen. - details sind auf den Rand des Bildes.In anderen Worten, das Bild nicht passt zu meinem Bildschirm.Nicht über details in der Mitte auf dem Bild...Ist über die Pixel am Rand des Bildes!!!
- bedeutet, dass schneiden Sie die Artikel, die nicht passen, wenn in Kombination mit 'center', es suggeriert, dass alle Kanten gleich abgeschnitten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie im Gespräch über das Bild auf der website ist größer als die auf Ihrem Telefon, dann ist es, weil Ihre Waage-Typ:
und Ihre Bildansicht gebunden wahrscheinlich nicht mit der Bild (also das Bild ist beschnitten). Versuchen Sie diese Zeile, um die Bildansicht und sehen, ob es einen Unterschied macht.
Schließlich ändern Sie die layout-Attribute height und width zu:
Wenn Sie die Bildgröße ist außerhalb der Grenzen Ihres Bildansicht bei der Verwendung der scaleType Attribut:
Dann Ihr Bild wird beschnitten werden und nur zeigen, was in Ihr passt Bildansicht. Um dies zu umgehen, hier ist eine helper-Methode, die Sie aufrufen können, zu skalieren Ihr Bild auf die Größe, die Sie benötigen. Sie müssen möglicherweise einige Anpassungen auf Ihrer Seite zu Ihrer situation passen, aber es sollte hilfreich sein. Es ist eine leicht modifizierte version, die sich auf Seltsam out-of-memory-Problem beim laden von einem Bild zu einem Bitmap-Objekt:
Laut den Kommentaren unten Ihre Frage, dies wird verursacht durch die
android:scaleType="centerCrop"
- Anweisung. Es blendet die Grenze des Bildes, da nur der Teil angezeigt, auf dem Bildschirm des Gerätes ist der Teil, dass es passt.NSJonas gab weitere Details auf dieser Seite an, wie man das Bild auf den Bildschirm passen.
Klingt wie Sie wollen scaleType
"centerInside"
statt"centerCrop"
.