标签: android-imageview

Android ImageView:适合宽度

我下载图像并使用动态设置为屏幕背景Imageview.我试过ScaleType,缩放图像.

如果图像高度大于宽度那么ScaleTypes fitStart,fitEnd并且fitCenter不起作用.Android缩小照片并根据高度调整它,但我看到一些额外的空白空间作为宽度的一部分.

我想根据宽度缩小照片,使其适合宽度,我不在乎是否有一些额外的空白空间作为高度的一部分,或者如果高度太长,如果它超出视图就没关系(如果可能的话?).

ScaleType.XY缩放照片并适应所有内容ImageView并且不关心图像高度/重量比.

<ImageView 
                android:id="@+id/background"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:adjustViewBounds="true"
                android:scaleType="fitStart"
            />
Run Code Online (Sandbox Code Playgroud)

android android-layout android-imageview

64
推荐指数
6
解决办法
8万
查看次数

缩放图像以填充Android中的整个ImageView

我想缩放图像以占用ImageView的整个大小.这与使用略有不同,scaleType=fit_center因为如果图像宽高比与ImageView的宽高比不完全匹配,fit_center将在图像周围留下条带.相反,我希望图像居中并按比例放大以完全填充封闭视图,任何多余的切断.

我可以通过在onCreate()期间计算我自己的自定义图像矩阵来实现这一点:

final Display display = getWindowManager().getDefaultDisplay();
final float screenWidth = display.getWidth();
final float screenHeight = display.getHeight();
final float imageWidth = splashView.getDrawable().getIntrinsicWidth();
final float imageHeight = splashView.getDrawable().getIntrinsicHeight();
final Matrix splashMatrix = new Matrix();
final float scale = Math.max(screenHeight/imageHeight,screenWidth/imageWidth);
splashMatrix.postScale( scale, scale );
splashView.setImageMatrix(splashMatrix);
Run Code Online (Sandbox Code Playgroud)

这工作正常,但似乎必须有一个更容易的.有没有人知道在ImageView中放大图像同时保留图像的纵横比并完全填充ImageView的方法?

(注意:在我的情况下,我的ImageView占据了整个屏幕,所以我getWindowManager().getDisplay()用来找到所需的图像大小.你不能使用splashView.getWidth()/ getHeight()因为视图还没有布局而且没有大小)

android android-layout android-imageview

61
推荐指数
3
解决办法
7万
查看次数

以编程方式显示ImageView

当用户单击按钮时,如何使ImageView显示在屏幕中间?我已将图像放在res/drawable-folder中.

我一直在尝试使用下面的代码,但我不知道如何使ImageView出现:

 View v = new ImageView(getBaseContext());
 ImageView image; 
 image = new ImageView(v.getContext()); 
 image.setImageDrawable(v.getResources().getDrawable(R.drawable.gameover));
Run Code Online (Sandbox Code Playgroud)

谢谢!

android android-imageview

60
推荐指数
4
解决办法
14万
查看次数

如何在屏幕上拉伸三个图像以保持纵横比?

我需要在屏幕顶部并排显示三个相同尺寸的图像(200 X 100)(无间隙).它们应占据屏幕的整个宽度并保持纵横比.是否可以仅使用布局xml文件来实现,或者我需要使用java代码?
解决方案应该是独立的解决方案......任何人都可以针对此(或类似)问题发布解决方案或链接吗?谢谢!

android-layout android-imageview

51
推荐指数
4
解决办法
2万
查看次数

在ImageView中获取可绘制的ID

我有一个ImageView并设置了一个drawable.现在我需要ImageView动态获取可点击事件的ID .我怎么才能得到它?

imgtopcolor = (ImageView) findViewById(R.id.topcolor); 
imgtopcolor.setImageResource(R.drawable.dr);  // How do I get this back?
Run Code Online (Sandbox Code Playgroud)

现在触摸事件imgtopcolor我想要绘制id因为我每次都设置不同的drawable并且想要将drawable与其他

android android-imageview android-drawable

49
推荐指数
3
解决办法
11万
查看次数

Android图像对话框/弹出窗口

是否可以在Android应用程序中只显示图像弹出/启动?它类似于覆盖AlertDialog的普通视图,因此它只包含一个图像而不包含任何其他内容.

解决方案: 感谢@ blessenm的帮助,我找到了答案.将活动屏蔽为对话似乎是理想的方式.以下是我使用的代码.可以根据需要调用此对话框样式活动,与启动新活动的方式相同

ImageDialog.java

public class ImageDialog extends Activity {

    private ImageView mDialog;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.your_dialog_layout);



        mDialog = (ImageView)findViewById(R.id.your_image);
        mDialog.setClickable(true);


        //finish the activity (dismiss the image dialog) if the user clicks 
        //anywhere on the image
        mDialog.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            finish();
        }
        });

    }
}
Run Code Online (Sandbox Code Playgroud)

your_dialog_layout.xml

<?xml version="1.0" encoding="UTF-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/image_dialog_root" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@android:color/transparent"
    android:gravity = "center">

    <ImageView
        android:id="@+id/your_image"  
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src = "@drawable/your_image_drawable"/>

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

为活动设置以下样式以实现此目的至关重要:

styles.xml

  <style name="myDialogTheme" …
Run Code Online (Sandbox Code Playgroud)

android dialog android-imageview android-alertdialog

48
推荐指数
2
解决办法
8万
查看次数

在android中的imageview上放置textview

  • 我有一个listview,有一个imageview可以垂直滚动的单个
  • 我想把它textview放在上面Imageview
  • 两个视图都必须可见

  1. 可能吗 ?
  2. 如果是,如何以编程方式进行?
  3. 我需要做出哪些改变?

list_view_item_for_images.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <ImageView
        android:id="@+id/flag"
        android:layout_width="fill_parent"
        android:layout_height="250dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:scaleType="fitXY"
        android:src="@drawable/ic_launcher" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

它给出了如下输出

在此输入图像描述

如何做以下的事情

在此输入图像描述

note :: Dish 1和2是textviews

android textview android-imageview

48
推荐指数
3
解决办法
11万
查看次数

什么时候需要在View上执行invalidate()?

我对这个问题的回答刚刚被接受,但我开始想知道究竟是什么时候需要使一个视图无效(以及什么时候没有必要)?

经过一番思考后,我意识到它应该或多或少地像这样工作:

  • 实际绘制的"一切"发生在之后 onResume()
  • 在"免费"时间屏幕的部分可以重绘,但只有那些invalidated(和下面的一切)

因此,看起来,如果我改变后的东西onResume()(例如作为对按钮点击的响应,我应该invalidate()改变View).

但是,从这个问题中的 scana所说,它必须比那更复杂,并且它取决于某些人使用的方法.

例如,是否使用

lastClicked.setImageBitmap();
Run Code Online (Sandbox Code Playgroud)

要么

lastClicked.setImageResource();
Run Code Online (Sandbox Code Playgroud)

那么,什么时候需要在View上执行invalidate()以及它是如何工作的呢?

android android-imageview android-view

44
推荐指数
2
解决办法
5万
查看次数

向imageview添加渐变

我想在图像的底部添加渐变.像这样的东西:

在此输入图像描述

我试过这样的东西,但我只得到渐变没有图像..

    <ImageView
    android:id="@+id/trendingImageView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/trend_donald_sterling"
    android:src="@drawable/trending_gradient_shape"
  />
Run Code Online (Sandbox Code Playgroud)

trending_gradient_shape:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle" >

    <gradient
        android:angle="90"
        android:endColor="@android:color/darker_gray"
        android:startColor="@android:color/darker_gray" />

    <corners android:radius="0dp" />

</shape>
Run Code Online (Sandbox Code Playgroud)

android android-imageview android-drawable

42
推荐指数
5
解决办法
4万
查看次数

ImageView不保持最大高度和宽度

我将图像加载到从用户照片库中检索到的ImageView使用.setImageURI(selectedImageUri)中.我有图像视图限制大小

android:maxHeight="150dp"
android:minHeight="150dp" 
android:maxWidth="150dp" 
android:minWidth="150dp"
Run Code Online (Sandbox Code Playgroud)

在您从图库添加图像之前,这很好.然后图像会忘记最大高度和宽度.它与显示器一样宽,图像上方和下方有很多空间.我必须添加一个scrollview才能看到图像并向下滚动.上面和下面有一个均匀的空间.有没有人遇到过这个问题?

android android-layout android-xml android-imageview

41
推荐指数
1
解决办法
2万
查看次数