我尝试在API 21上插入图像并且不能正常工作,但在API 26上一切正常。 我的错误或错在哪里?
public class MainActivity extends AppCompatActivity {
ImageView img1,img2,img3,img4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img1 = (ImageView) findViewById(R.id.img1);
img2 = (ImageView) findViewById(R.id.img2);
img3 = (ImageView) findViewById(R.id.img3);
img4 = (ImageView) findViewById(R.id.img4);
//setResource
// if(img1 != null) img1.setImageResource(R.drawable.china); //Вылетает
//setDrawable
if(img2 != null) `img2.setImageDrawable(Drawable.createFromPath("/res/drawable/tokyo1.png"));`
//setBitmap
if(img3 != null) img3.setImageBitmap(BitmapFactory.decodeResource(this.getResources(), R.drawable.tokyo2));
//Picasso(local)
if(img4 != null) {
Picasso.get()
.load(R.drawable.china)
.into(img4);
}
//Picasso(URI)
if(img1 != null) {
Picasso.get()
.load("https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTmG5K1tMdQ4W3G1WlZSfSWfL6jo8E9rS4NTHflXoT1CsF2Na_i")
.into(img1);
}
}
}
XML:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.kiril.imgtest4.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/img1"
android:layout_width="1dp"
android:layout_height="150dp"
android:layout_weight="1"
android:background="@android:color/holo_orange_dark"/>
<ImageView
android:id="@+id/img2"
android:layout_width="1dp"
android:layout_height="150dp"
android:layout_weight="1"
android:background="@android:color/holo_blue_light"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/img3"
android:layout_width="1dp"
android:layout_height="150dp"
android:layout_weight="1"
android:background="@android:color/holo_green_light"/>
<ImageView
android:id="@+id/img4"
android:layout_width="1dp"
android:layout_height="150dp"
android:layout_weight="1"
android:background="@android:color/holo_red_dark"/>
</LinearLayout>
</LinearLayout>
</android.support.constraint.ConstraintLayout>
答案 0 :(得分:1)
问题在于您的xml文件中的layout_width tag
。
您正在指定layout_width size as 1 dp
。使其足够大以在ImageView中显示图像
或强>
use layout_width="wrap_content"
可正确显示图像,而无需调整图像宽度。
因此,最后只需将android:layout_width="1dp"
替换为android:layout_width="wrap_content"
或android:layout_width="any size in dp"
希望这会有所帮助!!
答案 1 :(得分:0)
好的虽然我不知道你想在这里实现什么。我指出了一些步骤。根据方向,将单位Select *
From clientProfil A
Where (Select A.* for XML Raw) like '%'+@search+'%'
与0dp
一起使用。
所以你的布局应该是这样的。
layout_weight
您可以通过多种方式将图片设置为 <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="150dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/img1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
/>
<ImageView
android:id="@+id/img2"
android:layout_width="0dp"
android:layout_height="150dp"
android:layout_weight="1"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="150dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/img3"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
/>
<ImageView
android:id="@+id/img4"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
/>
</LinearLayout>
</LinearLayout>
。
ImageView
如果您使用imageView.setImageResource(R.drawable.ic_launcher);
imageView.setImageDrawable(ContextCompat.getDrawable(this,R.drawable.ic_launcher));
Picasso.with(context).load(R.drawable.ic_launcher).into(imageView);
设置图片,请在xml中使用android:scaleType
属性。也无需检查src
。另请阅读what-is-the-difference-between-src-and-background-of-imageview。