在位图上显示按钮而不是imageview

时间:2016-01-05 06:15:49

标签: android bitmap imageview

我有一个用于显示广告的全屏活动。广告只是一个图像,图像上有一个十字按钮。一切似乎工作正常我面临的唯一问题是来自服务器的图像处于横向模式,然后交叉按钮保持在顶部,图像在中心enter image description here

当图像处于纵向模式时,图像以全屏显示并在顶部交叉

enter image description here

任何人都可以建议我如何在加载的图像上移动十字按钮,就像第二张图像中的横向按钮一样。

这是我的代码

img = (ImageView) findViewById(R.id.adimage);
    try {
        obj = new JSONObject(store.getString(Constants.PROFILE_STRING));
        JSONObject advert = obj.getJSONObject("advertisement");
        url = advert.getString("url");
        image = advert.getString("image");
        name = advert.getString("name");
        DisplayImageOptions options = new DisplayImageOptions.Builder()
                .imageScaleType(ImageScaleType.EXACTLY)
                .cacheOnDisc(true)
                .build();
        il.loadImage(image, options, new ImageLoadingListener() {
            @Override
            public void onLoadingStarted(String imageUri, View view) {
            }

            @Override
            public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
            }

            @Override
            public void onLoadingCancelled(String imageUri, View view) {
            }

            @Override
            public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
                img.setImageBitmap(loadedImage);
                findViewById(R.id.close).setVisibility(View.VISIBLE);
            }
        });
    } catch (JSONException e) {
        e.printStackTrace();
    }

这是我的布局文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:padding="10dp"
tools:context="soulvant.golfclub.Advertisement">

<FrameLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true">

    <!--<ImageView
        android:id="@+id/backgroundImage"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />-->
    <ImageView
        android:id="@+id/adimage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" />

    <ImageView
        android:id="@+id/close"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_alignParentTop="true"
        android:layout_alignRight="@+id/adimage"
        android:layout_alignTop="@+id/adimage"
        android:layout_gravity="right|top"
        android:padding="5dp"
        android:scaleType="centerCrop"
        android:src="@drawable/a_close_button"
        android:visibility="gone" />
</FrameLayout>

2 个答案:

答案 0 :(得分:0)

嗯,你可以这样做。

  

获取adImage下载后的宽度和高度

     

然后,将关闭按钮/图像放在adImage上,指定要放置图像的位置

答案 1 :(得分:0)

尝试在您的imageview中保留android:adjustViewBounds="true"此属性调整图像边界以保留其drawable.do的宽高比,如:

<FrameLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true" >

    <ImageView
        android:id="@+id/adimage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true" />

    <ImageView
        android:id="@+id/close"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_gravity="right|top"
        android:padding="5dp"
        android:scaleType="centerCrop"
        android:src="@drawable/ic_launcher"
        android:visibility="gone" />
</FrameLayout>