I'm trying to take a thumbnail image of a video the user can view in the app and display it in an ImageView. However, when I try to display the thumbnail, it looks like the whole ImageView disappears and no image appears at all.
I tried using a test photo that wasn't a thumbnail, and it definitely displayed in the ImageView, so I don't think it's a problem with the XML, but it could be. I've googled for hours and don't understand where I'm messing up. My code comes from Stack Overflow already.
uri = Uri.parse("android.resource://"+ getActivity().getPackageName() +"/"+R.raw.test);
Bitmap thumb = ThumbnailUtils.createVideoThumbnail(uri.getPath(), Thumbnails.MICRO_KIND);
//Create ImageView to hold the thumbnail
ImageView imageView = view.findViewById(R.id.mediaPreview);
imageView.setImageBitmap(thumb);
XML
<LinearLayout
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:id="#+id/startup_dialog"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="25"
tools:context=".ui.MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="#string/getting_started"
android:gravity="start"
android:layout_gravity="start"/>
<ImageView
android:id="#+id/mediaPreview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginHorizontal="20dp"
android:layout_marginTop="10dp"
/>
The image would be displaying but it is not showing because you may have a image of greater pixel try changing your image pixel or try to add another image instead.
Related
I have a standard TextView and TextSwitcher:
The TextView:
<android.support.v7.widget.AppCompatTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:textColor="#3F51B5"
android:textSize="40sp"
android:gravity="bottom|center_horizontal"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:background="#android:color/black">
The TextSwitcher:
<TextSwitcher
android:id="#+id/questionTextSwitcher"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#android:color/white"/>
The text of the TextView changes dynamically, and sometimes the text is a couple lines.
The black background is the TextView, and the white is the TextSwitcher:
When there is a longer text set it looks like this:
When there is a smaller text it looks like this:
I want the TextView to be placed at the bottom of the TextSwitcher - but that isn't happening?
try to match the parent height and also use the layout_gravity attribute.
How to set image1 overlap image2
I want to set image1(by Drawable) overlap image2(by bitmap)
example
In the example above
icon play is image1 and picture is image2
I found slove is only image1 and image2 is by drawable
and If image2 is by bitmap ,I have no idea to set it
ps. sorry my english is not good.
file.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="#+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<ImageView
android:id="#+id/image_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/bacground_pic"
/>
<ImageView
android:id="#+id/image_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="trues"
/>
</RelativeLayout>
secondly you have to set Bitmap to second image with this
ImageView image_1=(ImageView) findviewbyid(R.id.image_1);
image_1.setImageBitmap(bitmap);
On ImageView object you can set a background image and as well as the ImageResource. Another way of doing this is RelativeLayout, place two ImageView overlapping each other.
ImageView having extra properties to set extra bitmap or icon or drawable other than normal Background in View properties,
So for your case, you can set Play icon as src(which will come on top of background and center) and Bitmap you can set as Background
<ImageView
android:id="#+id/video"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="#drawable/msg_media_play_small_icon" >
</ImageView>
and to set the Background Image, don't use imageView.setImageBitmap
use imageView.setBackground
imageview.setBackground(new BitmapDrawable(context.getResources(), bitmap));
I want to insert an image to an ImageView, which gets used as a background. This background is in a RecyclerView. When it gets loaded the first time, it looks like this:
But when I scroll to another item and scroll back, it looks like this (it should always look like this):
Here i add the image:
public void onBindViewHolder(StoryViewHolder holder, int position) {
holder.cardView.setMinimumHeight(height/3);
holder.layout.setMinimumHeight((int) ((float) width / 4));
//set image
Picasso.with(activity).load(MainPostAdapter.URL + 140 + ".png").
transform(new BlurTransform(holder.background.getContext())).fit().centerCrop().into(holder.background);
holder.background.setAlpha(0.25f);
}
And this is the image itself:
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="#+id/story_view_background"/>
What could the problem be?
EDIT:
whole XML (It doesn't show all of the code. Here is also pastebin:http://pastebin.com/8rJvSx7V):
<?xml version="1.0" encoding="utf-8"?>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="#+id/story_view_background"/>
<RelativeLayout
android:id="#+id/story_view_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="50px">
<ImageView
android:id="#+id/story_view_image"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="#+id/story_view_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="13sp"
android:layout_below="#+id/story_view_image"
android:paddingBottom="8dp"
android:paddingTop="8dp"
android:gravity="center_horizontal"
android:layout_alignParentBottom="true"/>
</RelativeLayout>
</FrameLayout>
try to set android:layout_height="150dp" for your CardView (don't use px!). Its child FrameLayout is unnecesarry (CardView is extending FrameLayout and have set same attributes set), remove it.
It's not so well written, all your Views have match_parent set for height, besides Image and Text views... Your item is probably trying to fit RecyclerView height in this case ("whole screen") and is measured without image at first time (Picasso async downloading, setting image when view is already measured). But when you inflate your View again (scroll and recycle) new list item will be measured differently, because Picasso will insert your image "in runtime", no need to async fetching (cache)
I'm trying to set an imageview's resource like so:
Code:
ImageView imageView = new ImageView(getApplicationContext());
imageView.setImageResource(R.drawable.bg);
Yet I see nothing on my screen.
I can set
imageView = (ImageView) findViewById(R.id.bgView);
And it works, but in my instance I can't use this because I need apply the imageview to an arraylist of imageviews.
Is there any other way to construct my imageview or am I doing something wrong?
Edit:
My xml looks like:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="#+id/entire_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#android:color/black"
tools:context="com.example.guilyan.Game" >
<ImageView
android:id="#+id/bgView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:contentDescription="#string/Descript"
android:scaleType="fitXY"
android:src="#+drawable/testpicks" />
</FrameLayout>
I think u should add the dynamically created image view to your layout.just try this.Suppose if your layout id is frameLayout then
frameLayout.addView(imageView);
Using of
new ImageView(getApplicationContext()); not correct.
You need use activity context, not application.
And of course after initialization of view you need attach it to parent.
I already tried all things I could find (on stackoverflow and the net) but I somehow cannot set my dialog to fullscreen. It has a scrollview with a textview in it, and when there is not much text in the textview the scrollview is not fullscreen. How can I force it to be fullscreen even when there is not much text visible ?
I create the dialog like this:
final TextView box;
final Dialog info = new Dialog(cx);
final ScrollView scroll;
info.setContentView(R.layout.dialoginfo);
info.setTitle("Info");
info.setCancelable(true);
info.getWindow().setFlags(LayoutParams.FLAG_FULLSCREEN, LayoutParams.FLAG_FULLSCREEN);
scroll = ((ScrollView) info.findViewById(R.id.scrollviewinfo));
scroll.setPersistentDrawingCache(ScrollView.PERSISTENT_NO_CACHE);
scroll.setScrollbarFadingEnabled(false);
box = (TextView) info.findViewById(R.id.infotext);
box.setText(text);
info.show();
This is the xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:id="#+id/infolayout"
>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="#+id/ImageView01"
android:layout_weight="1.0"
android:id="#+id/scrollviewinfo">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="#+id/infolayout2">
<TextView android:layout_margin="5dip" android:layout_width="fill_parent" android:layout_height="wrap_content"
android:id="#+id/infotext"
android:textSize="8sp"
android:text=""/>
</LinearLayout>
</ScrollView>
</LinearLayout>
It looks like your ScrollView has its height set to wrap_content, I'd first try replacing it with fill_parent.
Here are some other resources that may help you:
How can I get a Dialog style activity window to fill the screen?
I've never used the setFlags() method, so this may give you the same results. Basically try replacing
info.getWindow().setFlags(LayoutParams.FLAG_FULLSCREEN, LayoutParams.FLAG_FULLSCREEN);
with
info.getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
Alternatively, if you wanted more exact control over the height, you can create an instance of layout params, as the first answer here describes:
How to make an alert dialog fill 90% of screen size?
You can also use this code to get the screen size, if you wanted to modify it to be slightly smaller than full screen.
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
There are quite a few other ways to get the current screen size, too, this is just one example. Good luck!
Have you tried setting layout_height of the ScrollView to "match_parent" (and you can set the LinearLayout to "match_parent" too, though I don't think it's necessary)?. I'm guessing it shrinks when there isn't much text because it's set to "wrap_content". Try this:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_below="#+id/ImageView01"
android:layout_weight="1.0"
android:id="#+id/scrollviewinfo">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="#+id/infolayout2">
...
</LinearLayout>
</ScrollView>
Try wrapping your dialog custom layout into RelativeLayout instead of Linear Layout. That worked for me.