gpt4 book ai didi

java - ImageButton 设置LayoutParams 后图像模糊

转载 作者:太空狗 更新时间:2023-10-29 15:14:15 25 4
gpt4 key购买 nike

我四处看了看这里和其他地方,但我似乎找不到解决这个问题的方法。我对 Java 并不陌生,尽管这是我的第一个 android 应用程序。

我正在显示 3 个 ImageButton(一个在另一个右边),需要调整它们的大小以适应任何屏幕(即 7-10 英寸的平板电脑到 4 英寸的手机)。我已经弄清楚了这个逻辑,但我遇到的问题是 7 英寸以上设备上的图像质量很糟糕。这是我的 xml 的代码:

<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:id="@+id/mainLayout" >

<ImageButton
android:id="@+id/btn_god"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="@null"
android:src="@drawable/godtext" />

<ImageButton
android:id="@+id/btn_growth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:background="@null"
android:src="@drawable/growthtext" />

<ImageButton
android:id="@+id/btn_service"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:background="@null"
android:src="@drawable/servicetext" />

</RelativeLayout>

这是我 Activity 的相关部分:

    public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

int version = VERSION.SDK_INT;
int height = 0;
int width = 0;
if (version < 13){
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
height = displaymetrics.heightPixels;
width = displaymetrics.widthPixels;
} else {
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
width = size.x;
height = size.y;
}

/**
* Creating all buttons instances
* */
// Dashboard God button
ImageButton btn_god = (ImageButton) findViewById(R.id.btn_god);
btn_god.setAdjustViewBounds(true);
ViewGroup.LayoutParams params = btn_god.getLayoutParams();
params.height = height/4;
params.width = params.height;
btn_god.setLayoutParams(params);

// Dashboard Growth button
ImageButton btn_growth = (ImageButton) findViewById(R.id.btn_growth);
btn_growth.setAdjustViewBounds(true);
params = btn_growth.getLayoutParams();
params.height = height/4;
params.width = params.height;
btn_growth.setLayoutParams(params);
btn_growth.setImageResource(R.drawable.growthtext);

// Dashboard Service button
ImageButton btn_service = (ImageButton) findViewById(R.id.btn_service);
btn_service.setAdjustViewBounds(true);
params = btn_service.getLayoutParams();
params.height = height/4;
params.width = params.height;
btn_service.setLayoutParams(params);

我想做的是拍摄高分辨率图像,然后缩小它以适应较小的屏幕。但是,它似乎正在拍摄低分辨率图像并将其放大以用于更大的屏幕。有没有人遇到过类似的问题?你是怎么解决的?感谢您的回复!

最佳答案

xlarge screens are at least 960dp x 720dp
large screens are at least 640dp x 480dp
normal screens are at least 470dp x 320dp
small screens are at least 426dp x 320dp
Generalised Dpi values for screens:

ldpi Resources for low-density (ldpi) screens (~120dpi)
mdpi Resources for medium-density (mdpi) screens (~160dpi). (This is the baseline density.)
hdpi Resources for high-density (hdpi) screens (~240dpi).
xhdpi Resources for extra high-density (xhdpi) screens (~320dpi).

Therefore generalised size of your resources (assuming they are full screen):

ldpi
Vertical = 426 * 120 / 160 = 319.5px
Horizontal = 320 * 120 / 160 = 240px
mdpi
Vertical = 470 * 160 / 160 = 470px
Horizontal = 320 * 160 / 160 = 320px
hdpi
Vertical = 640 * 240 / 160 = 960px
Horizontal = 480 * 240 / 160 = 720px
xhdpi
Vertical = 960 * 320 / 160 = 1920px
Horizontal = 720 * 320 / 160 = 1440px

px = dp*dpi/160

这是我从这个网站上得到的,也许它会有所帮助

关于java - ImageButton 设置LayoutParams 后图像模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13963510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com