是否有可能在android中显示原始图像而不适合设备视图?

是否有可能在android中显示原始图像而不适合设备视图?,android,image,imageview,image-scaling,Android,Image,Imageview,Image Scaling,我有一个大小为1000px*1200px的图像,我希望它在不缩放的情况下显示出来 我已经在stackover flow和google中搜索过了,但没有找到好的 我想要没有缩放的完整图像, 我试过这样做 第1步:- <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/image"

我有一个大小为1000px*1200px的图像,我希望它在不缩放的情况下显示出来

我已经在stackover flow和google中搜索过了,但没有找到好的

我想要没有缩放的完整图像, 我试过这样做

第1步:-

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/image"
                />
public class MainActivity extends ActionBarActivity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        ImageView imageView = (ImageView) this.findViewById(R.id.imageview);
   }
}
<?xml version="1.0" encoding="utf-8"?>
<ScrollView android:id="@+id/ScrollView02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:scrollbars="none"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <HorizontalScrollView android:id="@+id/HorizontalScrollView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <ImageView android:id="@+id/imageview"
            android:src="@drawable/desert"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:adjustViewBounds="true">
        </ImageView>
    </HorizontalScrollView>
</ScrollView>

第2步:-

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/image"
                />
public class MainActivity extends ActionBarActivity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        ImageView imageView = (ImageView) this.findViewById(R.id.imageview);
   }
}
<?xml version="1.0" encoding="utf-8"?>
<ScrollView android:id="@+id/ScrollView02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:scrollbars="none"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <HorizontalScrollView android:id="@+id/HorizontalScrollView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <ImageView android:id="@+id/imageview"
            android:src="@drawable/desert"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:adjustViewBounds="true">
        </ImageView>
    </HorizontalScrollView>
</ScrollView>
我也尝试过scaleType 将scaleType添加到ImageView

 <ImageView
    android:scaleType="center"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/image" />

但这也不管用,

在sclate类型中,我尝试了所有可能的属性(矩阵、fitXY等)

有没有可能在android中显示原始图像


请在这方面帮助我。

您可以尝试这种方法,首先从drawable获取图像并创建位图。然后获取位图的宽度和高度,调整图像视图的大小,然后在其中显示图像。它将使用您的原始图像大小创建imageview

请参阅下面的代码-

BitmapDrawable bitmap = (BitmapDrawable) this.getResources().getDrawable(R.drawable.icon);
int bitmapHeight= bitmap .getBitmap().getHeight();
int bitmapWidth = bitmap .getBitmap().getWidth();
现在您有了原始图像的尺寸。 重新调整图像视图的大小-

    ImageView imageView = (ImageView) findViewById(R.id.my_image_view);
    imageView.getLayoutParams().height = bitmapHeight;
    imageView.getLayoutParams().width = bitmapWidth;
在最后一步中,将位图设置为图像视图-

imageView.setImageBitmap(bitmap);
replace - `imageView.setImageBitmap(bitmap);`
希望它能帮助你

已编辑

调整图像视图大小后使用以下代码-

imageView.setImageBitmap(bitmap);
replace - `imageView.setImageBitmap(bitmap);`


根据您的评论,我认为您需要的是一个类库。希望它能帮助您

,尽管我强烈谴责这种用户体验,但任何适合您的都可以

1) 使用以下链接制作二维滚动。


2) 将imageview添加到同一图像视图中,并在运行时在px中设置imageview的图像尺寸。

据我所知,您的问题是您希望图像的自然大小,而不需要imageview标记对其进行修改。这对我有用

<LinearLayout
    android:id="@+id/background"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/image_here"
    android:orientation="horizontal|vertical"/>


请在评论中告诉我。

将图像布局的宽度和高度设置为可包装内容的宽度和高度。使鳞状体居中。通过设备管理器检查您的设备宽度和高度,然后以%

为单位给出图像高度和宽度。经过多次尝试,我找到了上述问题的解决方案

代码如下:

main活动:-

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/image"
                />
public class MainActivity extends ActionBarActivity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        ImageView imageView = (ImageView) this.findViewById(R.id.imageview);
   }
}
<?xml version="1.0" encoding="utf-8"?>
<ScrollView android:id="@+id/ScrollView02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:scrollbars="none"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <HorizontalScrollView android:id="@+id/HorizontalScrollView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <ImageView android:id="@+id/imageview"
            android:src="@drawable/desert"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:adjustViewBounds="true">
        </ImageView>
    </HorizontalScrollView>
</ScrollView>
活动\u main.xml:-

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/image"
                />
public class MainActivity extends ActionBarActivity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        ImageView imageView = (ImageView) this.findViewById(R.id.imageview);
   }
}
<?xml version="1.0" encoding="utf-8"?>
<ScrollView android:id="@+id/ScrollView02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:scrollbars="none"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <HorizontalScrollView android:id="@+id/HorizontalScrollView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <ImageView android:id="@+id/imageview"
            android:src="@drawable/desert"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:adjustViewBounds="true">
        </ImageView>
    </HorizontalScrollView>
</ScrollView>

这完全符合我的要求


希望这对其他人有所帮助。

你有没有尝试过将该图像存储在drawable nodpi中,而不是在imageview中设置?试试android:scaleType=“center”这可能会对你有所帮助。@Ravi我已经尝试过scaleType=center,但不起作用。你能显示一些快照吗,你到底想要什么?@keshav我想要完整图像实际图像1000*1200大小,所以,我希望设备中的图像也能自动滚动。滚动条呢?哪个滚动条?解释一下?:)。检查我的答案。如果需要,他需要在屏幕小于imagegetDrawable()的设备上处理图像滚动,因此它在setImageBitmap()中显示错误。不,它没有被删除。您遇到了什么错误,请共享错误日志。这是怎么可能的?为我工作。对我来说唯一的事情是,如果我使用ImageView和width be match_parent,图像将显示在活动中间,在应用程序栏和图像之间留下空白。通过使用LinearLayout,我可以做我想做的事情。你可以试试这个,看看它是否符合你的要求。我在活动中不需要任何东西。我将用我的活动截图编辑答案,这是我的图像(在steve jobs后面),使用LinearLayout。这肯定不起作用,因为图像的最大宽度仍然是屏幕的最大宽度,而不是它自己的宽度。我不想给出静态的高度和宽度,我想动态滚动图像。只是建议好的。你可以给你的图像宽度90%使用(窗口管理器)和高度像往常一样(包装内容)在scrollView内。