如何将每个布局与相同大小的图像相关联

时间:2018-08-19 13:52:21

标签: android image android-studio

例如:当我们使用dimens文件夹作为文本大小值时,我们会转到dimen(小)来更改小布局(屏幕)的文本大小。 所以我想对图像做同样的思考,我想将hdpi图像的size(exp)与适当的布局相关联(大小:小或大等)

我认为问题可能出在这里,因为它包含有关“标题”和全屏显示的几行内容 这是启动代码:

package com.medanis.fneclis

import android.content.DialogInterface
import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.os.Handler
import android.view.View
import android.view.ViewConfiguration
import android.view.Window
import android.view.WindowManager
import android.widget.MediaController
import pl.droidsonroids.gif.GifDrawable
import pl.droidsonroids.gif.GifImageButton

class Splash : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        //hiding title bar of this activity
        window.requestFeature(Window.FEATURE_NO_TITLE)
        //making this activity full screen
       window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
        setContentView(R.layout.activity_splash)

        //2.63second splash time
        Handler().postDelayed({
            //start main activity
            startActivity(Intent(this, MainActivity::class.java))
            //finish this activity
            finish()
        },2630)


        val gib = GifImageButton(this)
        setContentView(gib)
        gib.setImageResource(R.drawable.fneclis_splash_bg)
        val mc = MediaController(this)
        mc.setMediaPlayer(gib.drawable as GifDrawable)
        mc.setAnchorView(gib)
        gib.setOnClickListener(object : DialogInterface.OnClickListener, View.OnClickListener {
            override fun onClick(p0: View?) {
                mc.show()
            }

            override fun onClick(p0: DialogInterface?, p1: Int) {
                mc.show()
            }

        })

    }
}

4 个答案:

答案 0 :(得分:1)

最佳方法在下面的链接中有完整描述。

https://developer.android.com/training/multiscreen/screendensities

答案 1 :(得分:0)

您必须为不同尺寸的屏幕创建不同的文件夹

drawable-sw720dp          10.1” tablet 1280x800 mdpi        
drawable-sw600dp          7.0”  tablet 1024x600 mdpi  

drawable-sw480dp          5.4”  480x854 mdpi     
drawable-sw480dp          5.1”  480x800 mdpi   

drawable-xxhdpi           5.5"  1080x1920 xxhdpi    
drawable-xxxhdpi           5.5" 1440x2560 xxxhdpi  

drawable-xhdpi            4.7”   1280x720 xhdpi     
drawable-xhdpi            4.65”  720x1280 xhdpi 

drawable-hdpi             4.0” 480x800 hdpi    
drawable-hdpi             3.7” 480x854 hdpi        

drawable-mdpi             3.2” 320x480 mdpi        

drawable-ldpi             3.4” 240x432 ldpi    
drawable-ldpi             3.3” 240x400 ldpi
drawable-ldpi             2.7” 240x320 ldpi

然后将相同大小的图像放在相同的文件夹中。

答案 2 :(得分:0)

很简单,转到android res目录,为每个分辨率创建drawable-XXX目录,如下所示

/root
   |
    -/res
       |
       /drawable-ldpi
                   |
                   /sample_image.png
       /drawable-mdpi
                   |
                   /sample_image.png

等等。

创建具有不同分辨率的sample_image.png并将它们以相同的名称和不同的分辨率放在相应的目录中。

仅在代码中引用它,例如@ drawable / sample_image之类的xml文件中引用它,而在R.drawable.sample_image中引用它的代码中

操作系统本身将根据设备屏幕分辨率决定使用哪个目录

答案 3 :(得分:0)

感谢所有人,我只是尝试删除了这部分代码,所以一切正常。再次谢谢你^ _ ^

    val gib = GifImageButton(this)
    setContentView(gib)
    gib.setImageResource(R.drawable.fneclis_splash_bg)
    val mc = MediaController(this)
    mc.setMediaPlayer(gib.drawable as GifDrawable)
    mc.setAnchorView(gib)
    gib.setOnClickListener(object : DialogInterface.OnClickListener, View.OnClickListener {
        override fun onClick(p0: View?) {
            mc.show()
        }

        override fun onClick(p0: DialogInterface?, p1: Int) {
            mc.show()
        }

    })